FP(函数编程):表示法

时间:2013-03-18 02:33:46

标签: functional-programming notation

此处使用的语言为FP

我不明白使用<>[]之间的区别。

例如:

2 : <3,4,5> -> 4

但是

+ o [1,2] : <2,3> -> 5

为什么第一个序列是用[]而不是<>写的?

谢谢!

1 个答案:

答案 0 :(得分:3)

您的问题的答案实际上是您提供的wiki链接。虽然<...>用作列表的表示法(例如,<3,4,5>是包含元素345)的列表,但[...]只是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