有没有一种方法可以使用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)
居民)。它对多态类型非常有用,但它不支持类型类,而且我认为它不会在一段时间内更新。是的,我给出的示例并不实用,只是一个语法示例。