此处使用的语言为FP。
我不明白使用<>
和[]
之间的区别。
例如:
2 : <3,4,5> -> 4
但是
+ o [1,2] : <2,3> -> 5
为什么第一个序列是用[]
而不是<>
写的?
谢谢!
答案 0 :(得分:3)
您的问题的答案实际上是您提供的wiki链接。虽然<...>
用作列表的表示法(例如,<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]
也就是说,[...]
是某种地图功能,另请参阅Higher order function to apply many functions to one argument。
在您的具体示例中
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