如何删除列表中的第一个元素

时间:2018-03-08 07:27:12

标签: sml smlnj

我需要从列表(头部)中删除第一个元素并存储该值。我该怎么做呢?我试图在sml中创建一个堆栈并制作pop方法

2 个答案:

答案 0 :(得分:2)

在标准ML列表中等同于堆栈。您可以使用hd获取第一个元素,并且可以使用tl来获取剩余的堆栈。但hdtl是部分函数,​​如果堆栈为空将失败。更安全的选择是使用&a;选项类型:

fun pop [] = NONE
  | pop (top::stack) = SOME (top, stack)

证明其用途:

- pop [1,2,3];
> val it = SOME(1, [2, 3]) : (int * int list) option

听起来您处于一个学习水平,tutorialtextbook更适合您的需求。

答案 1 :(得分:-3)

如果要从数组中删除第一个元素,请参阅下面的

<强> HTML

<!DOCTYPE html>
<html data-ng-app="demo">
<head>
<script data-require="angular.js@1.1.5" data-semver="1.1.5" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body>
<div data-ng-controller="DemoController">
  <ul>
    <li data-ng-repeat="item in items">
      {{item}}
      <button data-ng-click="removeItem($index)">Remove</button>
    </li>
  </ul>
  <input data-ng-model="newItem"><button data-ng-click="addItem(newItem)">Add</button>
  </div>
  </body>
  </html>

<强>的Javascript

"use strict";

var demo = angular.module("demo", []);

function DemoController($scope){
$scope.items = [
"potatoes",
"tomatoes",
"flour",
"sugar",
"salt"
 ];

 $scope.addItem = function(item){
 $scope.items.push(item);
 $scope.newItem = null;
 }

 $scope.removeItem = function(index){
 $scope.items.splice(index, 1);
 }
 }