作者noctem (noctem)
看板PLT
標題Re: [問題] 程式語言大部分是 Turing Complete 的嗎?
時間Tue Jun 30 10:09:39 2009
※ 引述《godfat (godfat 真常)》之銘言:
: 一般而言是把 void 當成 bottom, 不過當然性質上應該是差滿多的...
: 至少這件事是沒辦法做的:
: void undef(){}
: int i = undef(); // type error
: 而就像 Haskell 可以:
: undef = undef
: f :: Int
: f = undef
這倒是沒關係啦。前面的討論是說是否每個 type 都能寫出一個
term, 但不一定要是同一個。
: 這樣程式會立即有 exception, 而不是卡住。不過改成 while(true); 也行..
: (Haskell 的 undefined 大概就類似這邊的 None 吧?)
似乎是有點像呢。None 是... 任何 type 的 subtype 嗎?
所以 undef 可以放到任何上下文裡面。即使我宣告一個
沒有 constructor 的 type (有這個東西嗎?),undef
也可以當作他的成員?
: 另一方面則是關於 ternary operator, 像是:
: int i = condition ? something() : undef();
: 或是更激進的:
: int i = something() || undef();
啊,這個很有趣~
: noreturn_t/None 那篇看日期是三年前的討論,那時我只隱隱約約覺得
: 好像看到什麼地圖可以畫出來,但又不知道是什麼,看來現在多懂很多了 @@
以後你可以去多教別人囉~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 133.11.138.164