Re: [問題] if是不是函數

作者: godfat (godfat 真常)   2010-09-29 14:08:56
(fixed typo)
或許是本板的第一串戰火 =_=..
首先我想先說,「推文請勿超過三行」,請見板規
接下來如果又嚴重超過三行,水桶一天 (24h)
其次我想說,盡量不要有嘲諷的語氣,但我能理解有時候還是會很想說。
再有嘲諷語氣的話我會點名,希望能收斂點。
==================== 分隔線 ====================
個人想法
if 是不是 function, 當然要看是哪個語言了,不談語言只談概念,
那 if 就應該是所有語言的定義的集合,沒必要堅持一定是什麼...
在現今 imperative 語言充斥的環境下,if 大多是 statement,
而在有些有點 functional programming 意味的語言下,會是 expression.
另外在很少數的地方,if 確實是個 function.
在 if 是 function 的世界裡,例如 Agda 中,他的定義是
if_then_else_ : ∀ {a} {A : Set a} → Bool → A → A → A
if true then t else f = t
if false then t else f = f
可以在這邊看到程式,這是 Agda standard library
http://www.cs.nott.ac.uk/~nad/repos/lib/src/Data/Bool.agda
這一個 function 用到了 mixfix:
http://wiki.portal.chalmers.se/agda/pmwiki.php?n=ReferenceManual.Mixfix
也就是說,當我們寫 if b then t else f 時,用一般語言的語法可以看成:
if(b, t, f)
也當然了,整個程式本身是沒有任何 side-effect 的,否則這也無法成立。
作者: yzugsr (miaout17)   0000-00-00 00:00:00
推推
作者: yauhh (小y寶貝)   2010-09-29 14:11:00
ok,我會遵守.那我說 boolean -> actions 在actions部份顯然是看s-effect.
作者: godfat (godfat 真常)   2010-09-29 14:14:00
我最後一句話可能講得太隨便了 XD
作者: VictorTom (鬼翼&娃娃魚)   2010-09-29 23:30:00
推個人想法那段, 討論東西前要先把定義/範圍設定清楚:)

Links booklink

Contact Us: admin [ a t ] ucptt.com