相关疑难解决方法(0)

Djinn是如何工作的?

好的,所以我意识到我可能会在余生中后悔,但...... Djinn实际上是如何工作的?

文档说它使用的算法是"LJ的扩展",并指出了一篇关于LJT的长篇令人困惑的论文.就我所知,这是一个非常复杂的高度形式化规则系统,用于确定哪些逻辑陈述是真是假.但是,这甚至没有开始解释如何将类型签名转换为可执行表达式.据推测,所有复杂的形式推理都是以某种方式涉及的,但这种情况至关重要.


这有点像我在BASIC写一个Pascal解释器的时候.(不要笑!我只有十二岁......)我花了好几个小时试图解决它,最后我不得不放弃.我只是无法弄清楚你是如何从包含整个程序的巨型字符串中得到的,以及你可以与已知程序片段进行比较以确定实际操作的内容.

答案当然是你需要写一个叫做"解析器"的东西.一旦你理解了它是什么以及它做了什么,突然一切都变得明显.哦,编码它仍然不是一件容易的事,但这个想法很简单.你只需要编写实际的代码.如果我在十二岁时就知道解析器,那么也许我不会花两个小时只是盯着一个空白的屏幕.

我怀疑Djinn正在做的事情从根本上说很简单,但我遗漏了一些重要的细节,这些细节解释了所有这些复杂的逻辑体操如何与Haskell源代码相关...

logic haskell types

40
推荐指数
2
解决办法
2398
查看次数

给定Haskell类型签名,是否可以自动生成代码?

它在标题中说的是什么.如果我写一个类型签名,是否可以通过算法生成具有该类型签名的表达式?

似乎有可能做到这一点.我们已经知道,如果类型是库函数类型签名的特例,Hoogle可以通过算法找到该函数.另一方面,与一般表达式相关的许多简单问题实际上是无法解决的(例如,不可能知道两个函数是否做同样的事情),因此这是其中之一几乎难以置信.

一次问几个问题可能是不好的形式,但我想知道:

  • 可以吗?

  • 如果是这样,怎么样?

  • 如果没有,是否有可能的限制情况?

  • 两个不同的表达式很可能具有相同的类型签名.你能算出所有这些吗?甚至其中一些

  • 有没有人有工作代码,这是真的吗?

haskell types

27
推荐指数
3
解决办法
1852
查看次数

标签 统计

haskell ×2

types ×2

logic ×1