gpt4 book ai didi

haskell - 在 Haskell 中实现 DSL

转载 作者:行者123 更新时间:2023-12-02 05:22:18 27 4
gpt4 key购买 nike

这可能是一个非常基本的问题。

我正在开发一个最终允许我说的 DSL:

import language.cwmwl
main = runCWMWL $ do
eval ("isFib::", 1000, ?BOOL)

我刚刚开始研究解释器函数 runCWMWL,我想知道是否有可能以某种方式(以及如何?)在 do block 内部或外部转义到真正的 Haskell。

我想为我的解释器中的一些必需的前奏函数(例如 print)提供一个 defautl-wrapper,但我想知道是否有更优雅的方法来共同定位 DSL 和 Haskell 而不会失败回到只是一个普通的图书馆。

最佳答案

Template Haskell 查看 QuasiQuoting .你可能在做

import Language.CWMWL

main = runCWMWL [eval|
("isFib::", 1000, ?BOOL) |]

main = [run|("isFib::", 1000, ?BOOL) |]

或者任何适合你的。

关于haskell - 在 Haskell 中实现 DSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13670313/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com