荒謬功能的反轉
回答
此功能不存在。(假設有嚴格的語義)
查看類型的代數,函數類型等價於指數運算。
現在功能absurd
,其類型Void -> a
對應的操作a^0
等於1
。這意味着只有一個absurd
的實現,可以在Data.Void
中找到。
反向的箭頭,你得到的類型a -> Void
,相當於0^a
或0
,這意味着所需的功能不存在。
你也可以用庫裏霍華德同構證明這一點。由於函數類型對應於布爾函數「暗示」,你會得到以下條件:
True -> False
這是假的,因此沒有功能a -> Void
可以存在。
由於我剛剛開始學習類別理論,所以鼓勵由於語言不準確而引起的更正。
這取決於你的意思。 absurd
證人同構Void = forall a.a
的一側,並且從這一觀點,具有逆
void :: (forall a.a) -> Void
void x = x
這確實是一個同構。
有類型
forall a.a -> Void
也沒有任何逆absurd
與該類型的部分功能當中的無總功能。
很直觀,該功能不可能存在†。假設我們有這樣一個功能:
drusba :: a -> Void
那麼你可以做
GHCi> drusba (5 :: Int)
...從而創造Void
類型的值。 Well, that's exciting... also, congratulations, you're dead!
Hask(Haskell的類型類別,與Haskell函數作爲態射)是一種與bicartesian closed categoryinitial objectVoid
。初始對象的定義是,對於任何類型的A
,都只有一個函數Void -> A
- 這些函數是absurd :: Void -> a
的實例。此外,由於()
是終端對象,因此只有一個功能B ->()
- 任何此類功能都等同於。
現在,假設drusba ::() -> Void
,我們將有
drusba . absurd :: Void -> Void
drusba . absurd ≡ id
,因爲只能有一個功能Void -> Void
,我們知道id
是一個;和
absurd . drusba ::() ->()
absurd . drusba ≡ id
出於同樣的原因。 IOW,drusba
和absurd
確實是相互顛倒的,這意味着()
和Void
是同構的。
但從這一點,將遵循任何類型A
實際上是同構的兩個()
和Void
,因爲將有一個準確的功能() -> A
和A ->()
存在。所以基本上,如果存在函數drusba :: a -> Void
,這意味着Haskell只有一個類型,它不包含任何值。那不會是一個特別有用的編程語言,會嗎?
†當然,這一切只有當你不顧⊥成立。
@dfeuer:_exiting_或_exciting_,當你快要死了時,它們都是一樣的,不是嗎? – leftaroundabout
heh。我想是這樣。 – dfeuer
- 1. NSMutableData initWithCapacity荒謬能力?
- 2. OpenCL的荒謬CL_OUT_OF_RESOURCES
- 3. Heisenbug - > NSInvalidArgumentException:能力是荒謬
- 4. C++ - 荒謬遠程長程
- 5. ReadInt()返回荒謬值
- 6. 封裝變得荒謬嗎?
- 7. ICS中的荒謬的SQLite錯誤
- 8. iPhone荒謬的內存泄漏
- 9. iOS 7 UIBarButtonItem荒謬的間距問題
- 10. 如何處理荒謬的評論?
- 11. Asynctask採取荒謬的時間
- 12. NSData的荒謬長度錯誤
- 13. Netflow給出了bps的荒謬值
- 14. vector push_back顯示荒謬的結果
- 15. T-SQL DateDiff返回荒謬結果
- 16. 荒謬緩慢運行rspec測試
- 17. Java/Swing FEST測試失敗荒謬
- 18. System.reactive跨線程操作荒謬
- 19. 反轉功能
- 20. 類型錯誤試圖模式匹配的東西,應該是荒謬反正
- 21. ConvertHexToWideString - 反轉功能
- 22. 反轉LoginView功能
- 23. 簡單的代碼顯示荒謬的大數字......?
- 24. 我的PHP代碼中的荒謬錯誤!
- 25. 刷新頁面或做一個荒謬的數量的JQuery?
- 26. 關於多個類的Visual Studio中的荒謬錯誤
- 27. EOF在C中不能正常工作以及打印也是荒謬的
- 28. 提升單元測試運行荒謬的測試數量
- 29. 荒謬簡單的MPI_Send/Recv問題,我不明白爲什麼
- 30. 源代碼的大小,實際,理論和荒謬
這是一篇很好的文章[關於'代數數據類型'中的'代數'](http://chris-taylor.github.io/blog/2013/02/10/the-algebra-of- algebraic-數據類型/) –