我想為 co :: (b -> c) -> (a -> b) -> a -> c 撰寫一個函式。有人可以就如何為 co :: (b -> c) -> (a -> b) -> a -> c 撰寫 Haskell 函式提供一個清晰而簡單的解釋
我正在通過第一原理的 Haskell 編程中的第 5 章練習(給定型別,撰寫函式),問題如下:
只有一個版本會進行型別檢查:
co :: (b -> c) -> (a -> b) -> a -> c
co = undefined
我不知道如何開始這個問題
uj5u.com熱心網友回復:
我不知道如何開始這個問題
這是如何:
co :: (b -> c) -> (a -> b) -> a -> c
co = undefined
co f = undefined -- f :: b -> c co f :: (a -> b) -> a -> c
co f g = undefined -- g :: a -> b co f g :: a -> c
co f g a = c -- a :: a co f g a :: c
where -- c :: c
c = undefined
這就是我們可以做的幾個第一步。現在,
什么可以c為我們生產?f罐頭:
c = f b -- f :: b -> c
b = undefined
這是另一個步驟。但現在我們需要一個b.
能給b我們帶來什么?g罐頭:
b = g a -- g :: a -> b
我們能找到一個a地方嗎?我們需要嗎?
另請參閱:在 Haskell 中定義滿足型別的函式
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/462871.html
上一篇:消失的應用程式?[復制]
