任何人都可以爲我概述一種算法,可以將任何給定的正則表達式轉換爲CFG規則的等效集合嗎? 我知道如何解決這個基本的東西,如(A | B)*: S -> a A
S -> a B
S -> b A
S -> b B
A -> a A
A -> a B
A -> epsilon
B -> b A
B -> b B
B -> epsilon
S -> epsilon (end of s
我試圖把我的頭圍繞CGS的。令E^*爲'epsilon star',e爲空字符串,並且ww^r與w的反向相鄰。 我知道,建立一個CFG接受E^*是一個簡單的S -> 0S | 1S | e。接受{ww^r} such that w in E^* 甲CGG是一個簡單的S –> 0S0 | 1S1 | e。 這是否意味着一個CFG接受{wxw^r} such that w, x in E^*是一種「組
我有一個任務,我正在寫一堆基本的原始遞歸函數,其中一個是減法。我沒有獲得前任的定義,並認爲我不太可能將其定義爲eval Pred [x] = x-1。下面是我對PR的定義,我還定義了其他幾個函數,如時間,AND,OR,NOT,pow,true,false和ite。是否有可能只用我在這裏定義的減法?如果有的話可以給我一些指導。我目前的想法是我可以做類似的事情,給定minus[x,y]遞歸y次然後返回
我對If If Else的定義中的預測有問題。它實際上是作爲If-Else-Then執行的。 import Prelude hiding (pred,and,or,not)
data PR = Z
| S
| P Int
| C PR [PR]
| PR PR PR
deriving Show
eval :: PR -> [Integer]