【问题标题】:Role of combinators in concatenative/tacit programming languages组合子在串联/默示编程语言中的作用
【发布时间】:2011-02-17 02:06:47
【问题描述】:

高阶组合器(或函数生成器)在concatenativetacit programming 中扮演什么角色?

是否有另一种方法来实现串联编程语言而不是直接操作堆栈?

提到的组合子和Schonfinkelcombinatory logic之间的关系有多紧密?

【问题讨论】:

标签: lambda combinators tacit-programming concatenative-language


【解决方案1】:

是否有另一种方法来实现串联编程语言而不是直接操作堆栈?

是的。 Enchilada 语言基于术语重写。

【讨论】:

  • +1,虽然他们的定义“连接:后缀表达式的句法连接,产生有效的表达式”只是诺曼在他的回答中抱怨的那种另类想法。
  • 是的,我认为参与“连接”语言的每个人都在为自己制定定义。语言的一般“感觉”是相同的,所以我不会担心它:)
【解决方案2】:

在我对"Explain Concatenative languages to me like I’m an 8 year old" 的回答中,我认为使用“连接”这个词来描述编程语言是没有用的。这个区域似乎是 Manfred von Thun 的私人游乐场。 对于什么构成连接语言没有真正的定义,也没有成熟的理论支持连接语言的概念。因为这个概念没有真正定义,所以不可能对组合器的作用提供明确的解释。

您可能更愿意花时间研究更成熟的主题,例如组合逻辑、SK 组合器、lambda 演算和图形归约机。如果你从更务实的角度对无点编程感兴趣,APL、Forth 和 PostScript 都非常值得学习。

【讨论】:

  • 谢谢,我已经阅读了提到的帖子,并且一定会调查您指出的主题
  • 我认为你说的太过分了用“concatenative”这个词来描述编程语言是没有用的 - 这是一个相当不清楚但有用的概念,当你把它推得太远时会变得不连贯,这是维特根斯坦批评的像“游戏”这样的家庭相似性概念的一个例子。如果它们是 Manfred von Thun 的游乐场,它们就不是私人的:我发现 Christopher Diggins 在 Cat 上的工作很有趣。
  • 可以在此处找到对此答案的回复:evincarofautumn.blogspot.com/2012/02/…Why Concatenative Programming Matters
  • 我讨厌将其视为已接受的答案。这是不对的。连接是具有您可以将其中的一部分切掉并且它是有效程序,并加入程序并获得另一个程序的属性。很简单,不需要太多解释,真的。级联编程语言还有其他东西,但这是定义功能。它也无法回答任何 OP 的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-08
  • 1970-01-01
  • 2016-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多