Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种方法可以使用Djinn在Emacs中自动生成Haskell代码?_Haskell_Emacs_Ghc_Theorem Proving_Ghc Mod - Fatal编程技术网

有没有一种方法可以使用Djinn在Emacs中自动生成Haskell代码?

有没有一种方法可以使用Djinn在Emacs中自动生成Haskell代码?,haskell,emacs,ghc,theorem-proving,ghc-mod,Haskell,Emacs,Ghc,Theorem Proving,Ghc Mod,标题几乎说明了一切。我在找这样的东西: f :: Int -> Bool -> Int f = _body Djinn可以通过证明类型是有人居住的,从而使用定理证明为此类函数生成代码 我想知道,是否有一种现有的方法可以从Emacs中获得此功能?因此,我没有在代码中编写TemplateHaskell,而是在代码上运行一个命令,它插入生成的代码 我安装了ghc mod,但我对它不太熟悉。引用Serras的相关部分: 这很好,但在某些情况下,ghc mod可以为您做更多:它 能写出你的全

标题几乎说明了一切。我在找这样的东西:

f :: Int -> Bool -> Int
f = _body
Djinn可以通过证明类型是有人居住的,从而使用定理证明为此类函数生成代码

我想知道,是否有一种现有的方法可以从Emacs中获得此功能?因此,我没有在代码中编写TemplateHaskell,而是在代码上运行一个命令,它插入生成的代码


我安装了ghc mod,但我对它不太熟悉。

引用Serras的相关部分:

这很好,但在某些情况下,ghc mod可以为您做更多:它 能写出你的全部表情!它通过利用 吉恩。例如,让我们回到maybeMap的定义 拆分:

maybeMap Nothing f=\u maybeMap\u body

maybeMap(仅x)f=\u maybeMap\u body

如果在每个孔中按C-C-a键,则会显示以下选项: 将显示要在那里编写的代码,第一个代码中不包含任何内容 在第二种情况下,没有,只有x。你只需要 从列表中选择要包含的代码,它将被删除 自动完成。请注意,此功能变得非常有用 当您需要处理涉及咖喱和 tupling,因为它负责获取正确键入的 你的表情


所以,是的,在某些情况下,使用Djinn可以编写完整的表达式。我个人没有使用过它们,但在Emacs中似乎是可能的。

我不确定答案是什么,但我觉得这样做的实用性非常有限。事实上,你给出的代码是一个很好的例子,说明Djinn在哪些方面可能不是很有用(这种类型的居民数量很多。对于64位
Int
大小,我相信如果我正确计算的话,它会有
((2^64)^2^(2^64)
居民)。它对多态类型非常有用,但它不支持类型类,而且我认为它不会在一段时间内更新。是的,我给出的示例并不实用,只是一个语法示例。