可以仅使用标准函数(不通过方程式定义它)而不使用 lambda(匿名函数)在 Haskell 中表达S组合器的模拟吗?我希望它是 type (a -> b -> c) -> (a -> b) -> a -> c
。
例如,K组合子的模拟就是const
.
事实上,我正在尝试\f x -> f x x
使用标准函数来表达函数,但想不出任何标准的非线性函数开始(即多次使用其参数的函数)。
可以仅使用标准函数(不通过方程式定义它)而不使用 lambda(匿名函数)在 Haskell 中表达S组合器的模拟吗?我希望它是 type (a -> b -> c) -> (a -> b) -> a -> c
。
例如,K组合子的模拟就是const
.
事实上,我正在尝试\f x -> f x x
使用标准函数来表达函数,但想不出任何标准的非线性函数开始(即多次使用其参数的函数)。
s = (<*>)
例如((->) r)
Applicative
。
它也可以使用(=<<), (>>=)
。
它们都包含在 Prelude 中
instance Monad ((->) r) where
return = const
f >>= k = \ r -> k (f r) r