這裏使用的語言是FP。FP(功能編程):符號
我不明白使用<>
和[]
的區別。
例如:
2 : <3,4,5> -> 4
但
+ o [1,2] : <2,3> -> 5
爲什麼第一序列與[]
代替<>
寫的?
謝謝!
這裏使用的語言是FP。FP(功能編程):符號
我不明白使用<>
和[]
的區別。
例如:
2 : <3,4,5> -> 4
但
+ o [1,2] : <2,3> -> 5
爲什麼第一序列與[]
代替<>
寫的?
謝謝!
您的問題的答案實際上是在您提供的維基鏈接。雖然使用<...>
作爲列表的符號(例如,<3,4,5>
是具有元素3
,4
和5
的列表),但[...]
恰恰是已經由FP提供的功能的語法。這就是所謂的建設和定義
[f1, ..., fn]:x = <f1:x, ..., fn:x>
如果您熟悉哈斯克爾:它類似於
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
謝謝!非常清楚。 – 2013-03-18 03:07:27
特別是什麼語言?哈斯克爾?功能語言不一定共享語法。 – tjameson 2013-03-18 02:35:51
http://en.wikipedia.org/wiki/FP_(programming_language) – 2013-03-18 02:36:52
啊。我真的不知道那個。以爲你使用'FP'作爲函數式編程的通用思想。我的錯。 – tjameson 2013-03-18 02:39:13