作者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