作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我写了以下简单的函数
u f=f.f
ghci
这具有类型签名
u :: (b -> b) -> b -> b
(b -> b)
当它不一定需要时。例如函数
(:[])
具有类型签名
(:[]) :: a -> [a]
(b -> b)
的形式, (除非您允许无限类型),因此不能传递给
u
.但是您可以撰写
(:[])
与自己。
g=(:[]).(:[])
(:[]).(:[]) :: a -> [[a]]
u
.
u
使函数像
(:[])
可以传给它吗?
最佳答案
有许多不同的功能可以针对特定情况执行此操作,但一般都没有。
u1 :: (forall a. a -> f a) -> b -> f (f b)
u2 :: (forall a. f a -> a) -> f (f b) -> b
u f x = f (f x)
RankNTypes
时在 Haskell 中没有最通用的类型正在玩。正如 pigworker 所指出的,有些类型系统可以提供
u
一种您想要的基本类型,但它们采用类型系统扩展的方向与 Haskell 设计师所关注的方向截然不同。
关于Haskell 的 u f=f.f 类型签名比我想要的要强,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48037709/
使用登录后,我想吐出用户名。 但是,当我尝试单击登录按钮时, 它给了我力量。 我看着logcat,但是什么也没显示。 这种编码是在说。 它将根据我在登录屏幕中输入的名称来烘烤用户名。 不会有任何密码。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或include a min
我是一名优秀的程序员,十分优秀!