首页 > 解决方案 > 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

我不太确定结肠的另一侧发生了什么。我认为它必须涉及一个函数调用,但我还没有完全看到它。

谢谢。

标签: haskellstream

解决方案


推荐阅读