【问题标题】:FP (function programming): notationFP(函数编程):符号
【发布时间】:2013-03-18 02:33:45
【问题描述】:

这里使用的语言是FP

我不明白<>[]的用法有什么区别。

例如:

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

但是

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

为什么第一个序列是用[]而不是&lt;&gt;写的?

谢谢!

【问题讨论】:

  • 特别是什么语言?哈斯克尔?函数式语言不一定共享语法。
  • 啊。老实说,我不知道那个。以为您使用 FP 来表示函数式编程的一般概念。我的错。

标签: functional-programming notation


【解决方案1】:

您的问题的答案实际上在您提供的 wiki 链接中。虽然 &lt;...&gt; 用作列表的表示法(例如,&lt;3,4,5&gt; 是一个包含元素 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]:&lt;2, 3&gt; 可以“评估”为 如下(其中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

【讨论】:

    猜你喜欢
    • 2020-07-22
    • 2010-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 2019-11-18
    • 2021-12-04
    相关资源
    最近更新 更多