[Book Note] PFDS: Lists

原创 2016年05月31日 15:25:24
signature STACK
sig
  type a Stack

  val empty   : a Stack
  val isEmpty : a Stack -> bool

  val cons    : a * a Stack -> a Stack
  val head    : a Stack -> a
  val tail    : a Stack -> a Stack
end
structure List : STACK =
struct
  type a Stack = a list

  val empty = []
  fun isEmpty s = null s

  fun cons (x, s) = x :: s
  fun head s = hd s
  fun tail s = tl s
end
structure CustomStack : STACK = 
struct
  datatype a Stack = NIL
                   | CONS of a * a Stack

  val empty = NIL
  fun isEmpty NIL = true
    | isEmpty _ = false

  fun cons (x, s) = CONS (x, s)
  fun head NIL = raise EMPTY
    | head (CONS (x, s)) = x
  fun tail NIL = raise EMPTY
    | tail (CONS (x, s)) = s
end
fun [] ++ ys = ys
  | (x :: xs) ++ ys = x :: (xs ++ ys)

fun update ([], i, y) = raise SUBSCRIPT
  | update (x :: xs, 0, y) = y :: xs
  | update (x :: xs, i, y) = x :: update(xs, i - 1, y)
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

k_eckel's book lists 个人认为是目前最完善的C++及相关领域的书架

(转自)http://www.cnblogs.com/k-eckel/archive/2005/07/08/188270.html       最近一年,多读技术书籍。每有经典著作,买之、藏之、...

什么是读书笔记(Book Mark , Book Note)?

读书笔记,是指人们在阅读书籍或文章时,遇到值得记 录的东西和自己的心得、体会,随时随地把它写下来的一种文体。古人有条著名的读书治学经验,叫做读书要做到:眼到、口到、心到、手到。这“手到”就是读书笔记。...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)