这里使用的语言是FP。
我不明白 和 的使用之间的<>
区别[]
。
例如:
2 : <3,4,5> -> 4
但
+ o [1,2] : <2,3> -> 5
为什么第一个序列是用[]
而不是写的<>
?
谢谢!
这里使用的语言是FP。
我不明白 和 的使用之间的<>
区别[]
。
例如:
2 : <3,4,5> -> 4
但
+ o [1,2] : <2,3> -> 5
为什么第一个序列是用[]
而不是写的<>
?
谢谢!
您的问题的答案实际上在您提供的 wiki 链接中。While<...>
用作列表的表示法(例如,<3,4,5>
是带有元素3
、4
和的列表5
),[...]
只是 FP 已经提供的函数的语法。它被称为构造并定义为
[f1, ..., fn]:x = <f1:x, ..., fn:x>
如果你熟悉 Haskell:它类似于
map (\f -> f x) [f1, ..., fn] = [f1 x, ..., fn x]
也就是说,这[...]
是某种映射函数,另请参见高阶函数以将多个函数应用于一个参数。
在你的具体例子中
2:<3, 4, 5>
选择给定列表的第二个元素,并且+ o [1, 2]:<2, 3>
可以按如下方式“评估”(函数组合o
在哪里):
+ o [1, 2]:<2, 3> => (definition of composition)
+:([1, 2]:<2, 3>) => (definition of construction)
+:<1:<2, 3>, 2:<2, 3>> => (select list elements)
+:<2, 3> => (addition)
5