1
我想要得到一個表達式並將其轉換爲標準形式。爲了更好地闡明我的目的,假設你定義一個通用樣式你的表情是這樣的:用Haskell定義一個正常形式
Σ(A * B)//產品
現在總和,如果你給出的輸入這是不是在格式如:(a + b)*(c + d),你需要先對它進行標準化(其實它只是一個簡單的例子而不是我的例子) 現在我有一個已經寫在ML中的代碼,它的也是長。在這裏你可以看到一些snipets:
rew(p_choice(x,p_nil)) = rew(x) |
rew(p_choice(p_nil,x)) = rew(x) |
rew(p_sum(d,p_nil)) = p_nil |
rew(p_sum(d,p_choice(x,y))) = rew(p_choice(rew(p_sum(d,x)),rew(p_sum(d,y))))
rew(p_cond(b,p_nil,p_nil)) = p_nil |
rew(p_cond(b,p_choice(x,y),p_nil)) =rew(p_choice(rew(p_cond(b,x,p_nil)),rew(p_cond(b,y,p_nil)))) |
rew(p_cond(b,p_sum(x,y),p_nil)) = rew(p_sum(x,rew(p_cond(b,y,p_nil)))) |
rew(p_cond(b1,p_cond(b2,x,p_nil),p_nil)) = rew(p_cond(b1 andalso b2, x,p_nil)) |
rew(p_cond(b,x,p_nil)) = p_cond(b,x,p_nil) |
rew(p_cond(b,x,y)) =
rew(p_choice(rew(p_cond(b,x,p_nil)),rew(p_cond(not(b),y,p_nil))))
我的問題是,是否哈斯克爾介紹,可以幫助此代碼更加整齊完成的功能?
如果你有1000個案件處理,你必須處理1000個的情況下,沒有語言可以幫助你在 – Ankur
我認爲你所說的「風格」或「標準形式」通常被稱爲「範式」。 – Toxaris
Haskell需要較少的逗號和括號:-) – yatima2975