相关疑难解决方法(0)

如何枚举无上下文语法的字符串?

您使用什么算法来枚举由无上下文语法生成的字符串?

当没有递归时似乎可行,但我无法弄清楚如何在一般情况下这样做,它可能包含各种(可能是间接的)递归.

(我不是在寻找像本页那样的深奥解决方案;我正在寻找一种可以映射到标准命令式代码的算法.)

grammar enumerate context-free-grammar

5
推荐指数
1
解决办法
1706
查看次数

如何在两种数据类型之间创建完美的双射?

是否存在在两种数据类型之间创建双射的策略?例如,考虑以下数据类型:

data Colbit 
    = White Colbit Colbit 
    | Black Colbit Colbit 
    | Tip

data Bits
    = B0 Bits
    | B1 Bits
    | BEnd
Run Code Online (Sandbox Code Playgroud)

加上有效元素Colbit必须具有奇数个节点(白/黑构造函数)的约束.我该如何创建地图:

toColbit :: Bits -> Colbit
fromColbit :: Colbit -> Bits
Run Code Online (Sandbox Code Playgroud)

这样,对所有人b : Bits,fromColbit (toColbit b) == b对所有人来说c : Colbit,toColbit (fromColbit c) == c?(另外,这个属性叫什么?)

algorithm haskell types functional-programming function

2
推荐指数
1
解决办法
195
查看次数