표현식을 얻고 표준형으로 변환하려고합니다. 당신이 그에없는 입력을 제공하는 경우하스켈로 정규형 정의하기
Σ (A * 나) // 제품 이제
의 합계 : 더 나은 내 목적을 명확히하기 위해,이처럼 표현에 대한 일반적인 스타일을 정의 가정 형식 : (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 사건을 처리해야 처리 할 수 1천가지 경우이 경우, 언어가 도울 수 당신은 – Ankur
에 당신이 "스타일"또는 "표준 양식 '이라고 종종"일반적인 형태 "라는 것을 생각한다. – Toxaris
하스켈은 쉼표와 괄호가 덜 필요합니다. :-) – yatima2975