- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Curry's paradox (以与当前编程语言相同的人命名)是一种可能在错误逻辑中的构造,它允许人们证明任何事情。
我对逻辑一无所知,但它有多难?
module Main where
import Data.Void
import Data.Function
data X = X (X -> Void)
x :: X
x = fix \(X f) -> X f
u :: Void
u = let (X f) = x in f x
main :: IO ()
main = u `seq` print "Done!"
% ghc -XBlockArguments Z.hs && ./Z
[1 of 1] Compiling Main ( Z.hs, Z.o )
Linking Z ...
Z: <<loop>>
fix
我可以这样做吗?还是递归?为什么? 最佳答案
库里悖论的编码看起来更像这样:
x :: X
x = X (\x'@(X f) -> f x')
X
确实可以读作“如果
X
为真,则存在矛盾”,或者等效地,“
X
为假”。
fix
证明
X
没有真正的意义,因为
fix
作为推理原则是公然不正确的。库里的悖论更加微妙。
X
?
x :: X
x = _
X
是一个条件命题,所以你可以先假设它的前提来证明它的结论。这个逻辑步骤对应于插入一个 lambda。 ( build 性地,蕴涵证明是从前提证明到结论证明的映射。)
x :: X
x = X (\x' -> _)
x' :: X
,我们可以展开
X
的定义再次获得
f :: X -> Void
.在 Curry 悖论的非正式描述中,没有明确的“展开步骤”,但在 Haskell 中,它对应于 newtype 构造函数上的模式匹配
X
是一个假设,或者在
X
时应用构造函数是目标(事实上,正如我们上面所做的那样):
x :: X
x = X (\x'@(X f) -> _)
f :: X -> Void
和
x' :: X
, 所以我们可以推导出
Void
按功能应用:
x :: X
x = X (\x'@(X f) -> f x')
关于haskell - 库里在 Haskell 中的悖论?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58352224/
我有一些第三方类(class)。其精简版(为了简洁起见)功能如下: 提供两个类 ClassA 和 ClassB 供外部使用。这些类中的每一个类都与其他类完全无关(这意味着它们没有共同的祖先)。 有一个
我正在尝试在用户单击时为一个 div 设置动画,以便当前“主”div 移出视野,另一个 div 移入窗口,以便用户可以看到有关该事物的更多详细信息他们点击了。 我面临的问题是,我实现的用于将用户带回主
我有 3 个名为Discipline、DisciplineMembership、DisciplineManagement 的实体: 一个学科有多个学科成员 一个学科有多个学科管理 Discipline
在 Ruby 中,我们有 'bang' 方法 capitalize! 如果没有对字符串进行任何更改,它会返回一个 nil 的奇怪行为。 这意味着我无法将此命令与其他命令链接在一起,因为如果它返回 ni
人们已经无数次证明,yield return 比 list 慢。 示例:Is 'yield return' slower than "old school" return? 然而,当我尝试使用基准测试
列表基准:大小=1000,运行=50000,总时间=19.5 秒 var list = new List(Size); for (int i = 0; i { c = 0; for (i
我需要对 Paradox 数据库执行查询。有一个表,其中包含带有西里尔文字的数据,我正在尝试在这样的查询中使用西里尔文字参数: select * from AccessZone zn where zn
我是一名优秀的程序员,十分优秀!