[英]Free theorem for fmap
考慮以下包裝器: 我想反駁(作為圍繞這個有趣帖子的練習)有一個合法的Functor F實例,它允許我們將Int -> Int類型的函數應用於實際內容並〜忽略〜所有其他函數(即fmap nonIntInt = id )。 我相信這應該通過fmap的自由定理(我在這里讀到)來完成:對於給定的f 、 ...
[英]Free theorem for fmap
考慮以下包裝器: 我想反駁(作為圍繞這個有趣帖子的練習)有一個合法的Functor F實例,它允許我們將Int -> Int類型的函數應用於實際內容並〜忽略〜所有其他函數(即fmap nonIntInt = id )。 我相信這應該通過fmap的自由定理(我在這里讀到)來完成:對於給定的f 、 ...
[英]Is the functor distribution law for the `Alt` typeclass trivial?
我正在查看Alt typeclass的法律,它看起來像這樣: 其中一項法律是這樣的: 更詳細地說,這是: 假設我們取消了<!>操作,即我們假設類是這樣寫的: 我們可以這樣寫一個組合器: mapBoth :: Functor f => (a -> b) -> ...
[英]Law for type [[a]] -> ([a], [a])
我試圖從我的作業中回答這個問題: 給定任意foo :: [[a]] -> ([a], [a]) ,寫出函數foo滿足的一條定律,涉及列表和對上的map 。 一些背景:我是一名學習函數式編程課程的一年級本科生。 雖然這門課程比較入門,但講師在教學大綱中提到了很多東西,其中包括自由定理。 ...
[英]Paramcoq: Free theorems in Coq
如何使用插件Paramcoq證明以下自由定理 ? 如果不可能,那么此插件的目的是什么? ...
[英]Finding a “free theorem”
我如何得出該類型的自由定理: Nat只是data Nat = Z | S Nat data Nat = Z | S Nat ? 原則上,這可以通過Haskell的“自由定理”軟件包來解決,但是它太老了,無法在我可以合理安裝的任何GHC版本下進行編譯。 ...
[英]In Idris, can I prove free theorems, e.g. the only (total) function of type `forall t. t -> t` is `id`?
對於足夠多態的類型,參數可以唯一地確定函數本身(有關詳細信息,請參閱Wadler的定理免費! )。 例如,類型為forall t. t -> t的唯一總函數forall t. t -> t forall t. t -> t是身份函數id 。 是否有可能在伊德里斯陳述並 ...
[英]Parametricity-exploiting proofs in Agda
閱讀這個答案促使我嘗試構建,然后證明多態容器函數的規范形式。 施工很簡單,但證據證明了這一點。 下面是我嘗試編寫證明的簡化版本。 簡化版本證明,由於參數性,足夠多態的函數不能僅基於參數的選擇來改變它們的行為。 假設我們有兩個參數的函數,一個是固定類型,一個是參數: 我要證明的 ...
[英]For different possible Monad instances of a type, is the implied Functor instance always the same?
根據Typeclassopedia和這個鏈接,一個類型只能有一個Functor實例(鏈接中有一個證據)。 但我的理解是,給定類型可能有多個可能的Monad實例,這是對的嗎? 但對於給定的Monad實例,有一個免費的Functor實例 由此我得出結論,如果我偶然發現了一種我可以用不同方 ...