haskell - Haskell 基于语法生成无限流
问题描述
假设我们有以下语法:
#x = 整数 | (#x + #x)
INT = 0 | 1
假设现在我想创建一个“包含”#x 的所有可能形式的无限流。
到目前为止,这是我能想到的:
atomic :: [String]
atomic = ["0", "1"]
--------------------
plus :: String -> String -> String
plus x1 x2 = "(" ++ x1 ++ "+" ++ x2 ++ ")"
--------------------
makeInfiniteStream :: [String]
makeInfiniteStream = atomic : --something
我不太确定结肠的另一侧发生了什么。我认为它必须涉及一个函数调用,但我还没有完全看到它。
谢谢。
解决方案
推荐阅读
- r - 在 r 中透视和操作新旧数据
- firebase - FirebaseAnimatedList 为空时的自定义消息
- c - 将结果从寄存器保存到数组 [1000] 中,每次无需用户输入
- c# - 如何从外部 REST API 调用中停止多个线程(任务)?
- javascript - 无法从 forEach 循环内部推入数组
- r - 对多个输入使用重新制定
- function - Scipt:根据特定单元格的值在新单元格中输入数据并提交表单自动填写谷歌文档
- excel - 使用 VBA 过滤日期范围并在表格中输入命名单元格值
- python - 按行和列过滤子集 Pandas Dataframe
- javascript - 如何通过将值 JavaScript 传递给 PHP 来获取 PHP 中的 URL 值?