1
35
您可以将C-H扩展到许多有趣的逻辑和逻辑公式,以获得真正广泛的对应关系。在这里,我试着把重点放在一些更有趣的问题上,而不是那些晦涩难懂的问题,再加上一些基本的问题,这些问题还没有出现。
编辑:我建议有兴趣了解C-H扩展的人参考: http://www.cs.cmu.edu/~fp/papers/mscs00.pdf -这是一个很好的起点,因为它是从第一原理开始的,而且它的大部分目标是让非逻辑学家/语言理论家能够接触到(我是第二作者,所以我有偏见。) |
2
26
无人居住类型 不终止代表 矛盾 --前后矛盾的逻辑。不一致的逻辑当然会 allow you to prove anything 但也包括谎言。 忽略不一致性,类型系统通常对应于 intuitionistic logic constructivist ,这意味着某些经典逻辑无法直接表达。另一方面,这是有用的,因为如果一个类型是一个有效的构造性证明,那么这个类型的项就是一个有效的构造性证明 构造任何你已经证明存在的东西的方法 .
建构主义风格的一个主要特点是
双重否定
但重点是什么?为什么要写这样的字?是吗
有什么编程术语吗?好吧,你可以把它看作是一个已经有某种类型的函数
|
3
15
[2] 同样,这是完整性的结果。如果逻辑是一致的,这将是一个反定理的证明——因此,它不可能存在。
|
4
14
|
5
13
我很喜欢这个问题。我知道的不多,但我确实有一些事情要做 the Wikipedia article ,它有一些整洁的桌子等):
很多这是我在思考/证明(希望)事情的时候,但我希望这是有用的。我真的很推荐你 ; 我没有读过任何细节,但它的表格是一个非常好的总结,它是非常彻底的。 |
6
12
这里有一个稍微晦涩的问题,我很惊讶它没有被提前提到:“经典的”函数式反应式编程对应于时态逻辑。 当然,除非你是哲学家、数学家或痴迷于函数编程,否则这可能会带来更多的问题。 那么,首先:什么是函数式反应式编程?这是一种声明式的工作方式 时变值 . 这对于编写用户界面之类的东西很有用,因为来自用户的输入是随时间变化的值。”经典的“FRP”有两种基本数据类型:事件和行为。 事件表示仅在离散时间存在的值。击键就是一个很好的例子:你可以把键盘的输入想象成一个给定时间的字符。然后,每个按键都只是一对,带有按键的字符和按键的时间。 行为是不断存在的价值观,但可以不断变化。鼠标位置就是一个很好的例子:它只是x,y坐标的一种行为。毕竟,老鼠 不断地 当你移动鼠标的时候。毕竟,移动鼠标是一个长期的动作,而不是一堆离散的步骤。 什么是时间逻辑?恰当地说,这是一套逻辑规则,用于处理随时间而量化的命题。本质上,它用两个量词扩展了正常的一阶逻辑:和。第一个意思是“始终”:读作“始终保持”。第二个是“最终”:意思是“最终会保持”。这是一种特殊的 modal logic . 以下两条定律与量词有关:
所以和是双重的,就像和一样。 每一个 可能的时间,而事件只发生一次。 |
7
8
关于连续体和双重否定的关系,call/cc的类型是皮尔士定律 http://en.wikipedia.org/wiki/Call-with-current-continuation C-H通常表示为直觉逻辑与程序之间的对应关系。然而,如果我们添加带有当前延续(callCC)运算符的调用(其类型对应于皮尔士定律),我们得到 古典逻辑 |
8
5
有一件事很重要,但是还没有被研究,那就是2-延拓(取2个参数的延拓)和
Sheffer stroke
. 在经典逻辑中,谢弗笔划本身(加上一些非算子概念)可以形成一个完整的逻辑系统。意思是熟悉的
2-延拓的类型签名为
如果我们再进一步挖掘,就会发现那块是 existential graph 相当于一种语言的唯一数据类型是n-延续,但我没有看到任何现有的语言是这种形式。所以发明一个可能会很有趣,我想。 |
9
4
虽然这不是简单的同构, this discussion of constructive LEM |
10
4
头等舱续航支持允许您表达$P\lor\neg P$。 诀窍是基于这样一个事实:不调用continuation并用某个表达式退出就等于用同一个表达式调用continuation。 有关详细视图,请参见: http://www.cs.cmu.edu/~rwh/courses/logic/www-old/handouts/callcc.pdf |
nanounanue · 使用python和高级操作符的函数管道 6 年前 |
Zazaeil · 这个特定的递归可以用尾部优化的方式重写吗? 6 年前 |
corvid · 使用ramda通过变量进行升序/降序 6 年前 |
CodingNow · Scala:如何制作多种方法并逐一应用? 6 年前 |