功能性程序员用“道德”来表示什么?

时间:2016-06-06 18:37:33

标签: functional-programming terminology

我注意到“道德”这个词不断出现在函数式编程语境中。几个例子:

我不熟悉这个词的这些用法。我几乎可以推断出他们想说的是什么,但我们能否更准确地澄清它的含义?

(在English Language & Usage上交叉发布)

2 个答案:

答案 0 :(得分:7)

术语"道德对等"在(形式化的)逻辑中,并且通过扩展,在编程中与诉诸道德无关(如在道德或哲学问题中)。它正在选择“道德和”这个词,但意味着不同的东西。它通常被认为意味着P持有,但仅限于某些边条件"。如果这些条件没有教育价值,微不足道,技术性和/或无聊,则通常会被忽略。因此,关于"道德对等的链接文章"无所事事 - 这里没有任何价值判断。

我对Purescript了解不多,但是我解释你提到的陈述的方式是"你可以用Aff作为ErrorT (ContT Unit (Eff e)) a来实现同样的目的。 "

再举一个例子:假设您有两个功能,而您只对其域的特定(可能很大)子集感兴趣。我们还要说这两个函数在这些域上是一致的,即对于所有x∈dom,f(x)= g(x)。但是为了这个例子,也许他们在0上做了一些不同的事情,但是你不会将0传递给他们(因为0违反了一些假设)。人们可以合理地说f和g"在道德上是等同的"。

特别是在逻辑界,还有其他用途的道德"例如在短语"证明在道德上有问题",这意味着作者认为证明是草率的,它可能有空隙,但在技术上可以修复。在特定情况下,即执行关于可能不终止程序的证据,您提到的论文给出了这样的理由,这在标题中得到了回应,“快速和宽松的推理在道德上是正确的。”#34;

答案 1 :(得分:2)

正如Conor McBride在Twitter上指出的那样,这种用法源于类别理论界,它在fp中激发了很多。

https://twitter.com/pigworker/status/739971825128607744

Eugenia Cheng有一篇很好的论文描述了数学中使用的道德概念。

http://www.cheng.staff.shef.ac.uk/morality/morality.pdf