米兰达语 - 函数 lambda
Miranda Language - Function lambda
我研究函数范式已经有一段时间了,在这段时间里,我取得了一些成功,也犯了一些错误,正是这些错误让我真正学到了最多。我相信学习计算范式的一个好方法是从该范式中提取一些语言并大量测试相同的算法。正是在这种情况下,人们才意识到并非所有被一种语言接受的东西都被另一种语言所共享。这使得找到语言集共有的构造路径成为可能,从而在本质上具有更纯粹和断言的逻辑抽象推理。我的旅程与函数逻辑类的准备有关。
在这项研究中,我正在尝试开发(作为一个学习过程)函数来检测列表的头部、尾部、最后一个元素,以及通常在语言中发现的现成元素。
我是从一个叫Hope的实验性语言开始的,后来转到了Haskell,后来又去了OCaml,ML(SML/NJ)和F#。现在我正在用米兰达语做同样的测试。
在这个介绍之后,我发现关于米兰达语的信息很少,在 material 的集合中,我可以访问,我没有找到我想知道是否有人有这方面知识的某些信息并可以分享:
如何在 Miranda 中使用匿名函数 (lambda)(如果存在)?
提前致谢。
经过进一步研究,我最终放弃了这些信息,因为我没有找到任何东西。就在那时,我看到了 Kevin Glynn 和 Bernard Pope 于 1999 年出版的文档“Haskell for Miranda Programmers”,该文档在第 8 页 (http://www.berniepope.id.au/assets/files/mira2hask.pdf) 中告知 Miranda 仅使用命名函数进行操作。
In Miranda, all functions have to be named. In Haskell, a function object can be written using
lambda notation. The function definition consists of “" followed by a list of parameters, a “->" and a body expression (…).
米兰达没有 lambda。
但是如果不使用continuations,也没问题。
作为解决方法,我总是使用:
result = foldl lambda 0 [1..10]
where lambda x y = x+y
而不是 Haskell 的:
result = foldl (\x y -> x+y) 0 [1..10]
干杯,Dusterbraut
我研究函数范式已经有一段时间了,在这段时间里,我取得了一些成功,也犯了一些错误,正是这些错误让我真正学到了最多。我相信学习计算范式的一个好方法是从该范式中提取一些语言并大量测试相同的算法。正是在这种情况下,人们才意识到并非所有被一种语言接受的东西都被另一种语言所共享。这使得找到语言集共有的构造路径成为可能,从而在本质上具有更纯粹和断言的逻辑抽象推理。我的旅程与函数逻辑类的准备有关。
在这项研究中,我正在尝试开发(作为一个学习过程)函数来检测列表的头部、尾部、最后一个元素,以及通常在语言中发现的现成元素。
我是从一个叫Hope的实验性语言开始的,后来转到了Haskell,后来又去了OCaml,ML(SML/NJ)和F#。现在我正在用米兰达语做同样的测试。
在这个介绍之后,我发现关于米兰达语的信息很少,在 material 的集合中,我可以访问,我没有找到我想知道是否有人有这方面知识的某些信息并可以分享:
如何在 Miranda 中使用匿名函数 (lambda)(如果存在)?
提前致谢。
经过进一步研究,我最终放弃了这些信息,因为我没有找到任何东西。就在那时,我看到了 Kevin Glynn 和 Bernard Pope 于 1999 年出版的文档“Haskell for Miranda Programmers”,该文档在第 8 页 (http://www.berniepope.id.au/assets/files/mira2hask.pdf) 中告知 Miranda 仅使用命名函数进行操作。
In Miranda, all functions have to be named. In Haskell, a function object can be written using lambda notation. The function definition consists of “" followed by a list of parameters, a “->" and a body expression (…).
米兰达没有 lambda。 但是如果不使用continuations,也没问题。 作为解决方法,我总是使用:
result = foldl lambda 0 [1..10]
where lambda x y = x+y
而不是 Haskell 的:
result = foldl (\x y -> x+y) 0 [1..10]
干杯,Dusterbraut