F#实现的单链表(函数式的思想)
2015-04-16 18:43
176 查看
// 在 http://fsharp.net 上了解有关 F# 的更多信息 // 请参阅“F# 教程”项目以获取更多帮助。 type list = | Nil | Cons of int * list let x = Cons(1, Cons(2, Cons(3, Cons(4, Nil)))) //let rec printlist l= // match l with // | Nil -> () // | Cons(a, l') -> printfn "%d" a; printlist l' //打印程序,可通过提供不同的函数f,实现不同的打印方式 let rec printlist l f= match l with | Nil -> () | Cons(a, l') -> ((if f a then printfn "%d" a else ()); printlist l' f) [<EntryPoint>] let main argv = printlist x (fun x-> true) printlist x (fun x -> x>2) System.Console.ReadLine() 0 // 返回整数退出代码
相关文章推荐
- 用单链表通过异或思想来实现双链表的功能
- linux内核实现的通用链表思想
- 链表实现stack和queue,java实现(ADT思想)
- 数据结构基础 之 双链表 与 循环链表 各类操作、思想与实现
- c语言链表实现思想要点
- 【老鸟学算法】二元查找树转变成排序的双向链表——算法思想及java实现
- 数据结构基础 之 单链表 各类操作、思想与实现
- 栈的链表实现(C语言)
- 数据结构和算法C++语言实现:双向链表
- C语言单链表实现19个功能完全详解
- C语言实现双向循环链表
- 栈和队列(C链表实现)
- MFC中一个链表的实现
- 输入k 实现链表每k项都逆序输出
- 数据结构之双端(通用)链表的实现
- 基于C++实现五子棋AI算法思想
- c++ 顺序存储和链表存储 栈的实现代码
- 递归,迭代,堆栈三种方式实现单链表反转(C++)
- 用单链表实现通讯录
- 使用递归来实现在循环链表里删除第一节点不是数字‘2’