在 Haskell 中编写函数
Writing a function in Haskell
我想为 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
我不知道如何开始这个问题
I am not sure how to start this problem
是这样的:
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
吗?我们需要吗?
另请参阅:Defining a function that satisfies a type in Haskell
我想为 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
我不知道如何开始这个问题
I am not sure how to start this problem
是这样的:
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
吗?我们需要吗?
另请参阅:Defining a function that satisfies a type in Haskell