2013-03-18 88 views
0

這裏使用的語言是FPFP(功能編程):符號

我不明白使用<>[]的區別。

例如:

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

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

爲什麼第一序列與[]代替<>寫的?

謝謝!

+0

特別是什麼語言?哈斯克爾?功能語言不一定共享語法。 – tjameson 2013-03-18 02:35:51

+1

http://en.wikipedia.org/wiki/FP_(programming_language) – 2013-03-18 02:36:52

+0

啊。我真的不知道那個。以爲你使用'FP'作爲函數式編程的通用思想。我的錯。 – tjameson 2013-03-18 02:39:13

回答

3

您的問題的答案實際上是在您提供的維基鏈接。雖然使用<...>作爲列表的符號(例如,<3,4,5>是具有元素3,45的列表),但[...]恰恰是已經由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 
+0

謝謝!非常清楚。 – 2013-03-18 03:07:27