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

看板PLT (程式語言與理論)作者 (godfat 真常)時間14年前 (2010/09/29 14:09), 編輯推噓2(203)
留言5則, 4人參與, 最新討論串7/10 (看更多)
(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 的,否則這也無法成立。 -- Hear me exalted spirits. Hear me, be you gods or devils, ye who hold dominion here: I am a wizard without a home. I am a wonderer seeking refuge. Sacrifice -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.160.129

09/29 14:11, , 1F
ok,我會遵守.
09/29 14:11, 1F
※ 編輯: godfat 來自: 220.135.160.129 (09/29 14:12)

09/29 14:12, , 2F
那我說 boolean -> actions 在actions部份顯然是看s-effect.
09/29 14:12, 2F

09/29 14:14, , 3F
我最後一句話可能講得太隨便了 XD
09/29 14:14, 3F

09/29 23:30, , 4F
推個人想法那段, 討論東西前要先把定義/範圍設定清楚:)
09/29 23:30, 4F

10/02 08:54, , 5F
推推
10/02 08:54, 5F
文章代碼(AID): #1CejVy7V (PLT)
討論串 (同標題文章)
文章代碼(AID): #1CejVy7V (PLT)