Haskell로 오토마타 만들기 어려운 거 맞지? 걍 내가 못하는 건가?
regular expression으로부터 NFA을 얻는 과정을 코딩하다가 막힘.
대충 만들자니 시간 복잡도가 하늘을 찌를 것 같고 ..
포기할 때가 온 것인가 .. 아니면 C언어로 2트?
Haskell로 오토마타 만들기 어려운 거 맞지? 걍 내가 못하는 건가?
regular expression으로부터 NFA을 얻는 과정을 코딩하다가 막힘.
대충 만들자니 시간 복잡도가 하늘을 찌를 것 같고 ..
포기할 때가 온 것인가 .. 아니면 C언어로 2트?
오토마타를 표헌하는 것과, 그걸 하스켈로 단순하게 표헌하는 문제는 각각 난이도있는 문제임. 문제가 복잡하면 나눠서 풀어야 하지 않을까.
하스켈로 오토마타를 표현한다고 하면, 문자열을 받아서 무슨 자료형을 반환하면 좋을지는 생각해 봄?
아니요. 책에 있는 정의대로 Bool을 반환하기로 했는데 잘 안 되네요.
Bool을 반환하는 거면 정규식 문자열이랑 대상 문자열 둘을 받아서 매칭되는지 확인만 한다는 건가? NFA를 얻는다길래 그래프를 그리려는 줄 알았음. 그렇다면 시간 좀 투자하는 알고리즘 문제 정도의 난이도라고 생각하지만… 실제론 어떨지 모르겠네.
주어진 정규식으로부터 NFA를 얻고, DFA로 변환하여, 그 정규식과 입력받은 문자열이 매칭되는지 확인하는 게 연습문제에요.
GG. 컴파일러 수업을 너무 빠져선지 원하는 NFA, DFA가 어떤 형태인지 짐작이 안 감. 조립 가능한 함수 형태로 만들고 싶은 거면, 결국 파서 모나드하고 다른 게 없으니 이건 아닐 것 같고. 고생하셈.
감사합니다
오토마타가 간선에 레이블이 붙은 그래프잖아요. 이 그래프를 프로시져의 상태로 둬서 모나드로 이으면 될 것 같네요. 사이드 이펙트 없이 하려니까 막혀버렸는데 해결법을 찾은 것 같아요. 하스켈 넘나 어려운 것 ..
일단 해냈다