2016-06-06 58 views
12

我注意到「道德」這個詞不斷出現在函數式編程語境中。幾個例子:功能程序員的「道德」是什麼意思?

我不熟悉這個詞的這些用法。我大多可以推斷他們想說什麼,但是我們能更明確地澄清它的含義嗎?

(跨張貼在English Language & Usage

+3

這看起來更像是一個[programmers.se]問題。 – jonrsharpe

+2

FWIW,只要放棄「道德」,意識就保持不變。海事組織,所有這些「道德水平」都只是一種FP時尚;請參閱http://rationalwiki.org/wiki/Moral_equivalence等。 – vaxquis

+2

「道德等值」可以或多或少地被認爲是與鴨子打字相同的原則......如果它像鴨子一樣走路,像鴨子一樣說話並且庸醫像鴨子,那麼它一定是一隻鴨子。這是另一種說法,「只要最終的結果是相同的(我給出了相同的輸出給出了具體的輸入),我真的不在乎發生了什麼。」 –

回答

4

在(正式的)邏輯,並通過擴展術語「道德對等」,在節目無關,同呼籲做道德(如,倫理或哲學問題) 。它正在選擇「道德」這個詞,但意味着不同的東西。它通常被認爲是指「P成立,但只在某些副條件下」。如果這些條件沒有教育價值,這些條件通常被忽略,是微不足道的,技術性的和/或無聊的。因此,關於「道德對等」的鏈接文章無能爲力 - 這裏沒有涉及任何價值判斷。

我對Purescript瞭解不多,但是我想解釋你所說的陳述的方式是「你可以用Aff作爲ErrorT (ContT Unit (Eff e)) a來達到同樣的效果。」

舉另一個例子:比方說,你有兩個功能,你只對他們的域的一個特定的(也許是大的)子集感興趣。我們還要說這兩個函數在這些域上是一致的,即對於所有的x∈dom,f(x)= g(x)。但是爲了這個例子,也許他們在0上做了一些不同的事情,但是你不會將0傳遞給它們(因爲0違反了一些假設)。可以合理地說,f和g「在道德上是等同的」。

尤其是在邏輯社區中,還有其他一些「道德」用法,例如在「證據在道德上有問題」這個短語中,這意味着作者認爲證據是草率的並且可能存在差距,但技術上可解決。在特定情況下,即進行關於潛在非終止性節目的證明,您提到的論文給出了這樣的理由,這在「快速和鬆散的推理是道德正確的」標題中得到了迴應。