Pau*_*han 4 f# functional-programming list
假设我有一些代码:
let listB = [ 1; 2; 3 ]
Run Code Online (Sandbox Code Playgroud)
使用Lisp表示法,我该如何处理car并cadr反对此列表?我知道缺点是::.
或者在Scheme中,first和rest?
List.hd和List.tl将做你想要的 - 但在F#中你会发现列表通常是使用模式匹配解构的.例如,在下面的函数中,x匹配head,xs匹配传递给函数的列表的尾部:
let list = [1;2;3]
let rec f = function
| [] -> 1
| (x::xs) -> x * (f xs)
f list;
Run Code Online (Sandbox Code Playgroud)
List.head:返回非空列表的第一个元素(列表的头部).
List.tail:返回除第一个(列表的尾部或其余部分)之外的非空列表的所有元素.
示例(使用F#Interactive Console):
> let sample = [1;2;3;4];;
val sample : int list
> List.head sample;;
val it : int = 1
> List.tail sample;;
val it : int list = [2; 3; 4]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
459 次 |
| 最近记录: |