이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
강호찬
가입: 2019년 9월 12일 올린 글: 24
|
올려짐: 2022년5월6일 1:34 주제: [HW6] 3번 parsing 질문 |
|
|
안녕하세요 조교님.
파싱에 관해 질문이 있습니다.
hw6의 정의를 보면, 람다식 \var.E의 E에 임의의 람다식이 들어갈 수 있는데요,
\x.(y z) 를 파싱하면, (\x.y) (z) 가 나오는 것 같습니다.
(정확하게는 \x.(y) (z) 가 나오는데, 이 식은 (\x.(y)) (z) 로 파싱된 것 같다고 해석했습니다.)
제가 생각하기에 \x.(y z) 와 (\x.y) (z) 는 다른 람다식인데,
혹시 제가 람다식을 잘못 이해한 부분이 있을까요?
저 둘은 같은 식인가요?
감사합니다. |
|
위로 |
|
|
박규연 Site Admin
가입: 2022년 2월 28일 올린 글: 22
|
올려짐: 2022년5월6일 2:32 주제: |
|
|
밑글에 답변 드렸지만
혹시 람다계산법이 헷갈리신다면, 이 사이트를 참고해보세요.
https://lambdacalc.io/
\x.(y) (z)는 과제문서의 우선순위 정의에 따라 \x.(y z)와 같은 람다식으로 해석해야합니다.
감사합니다.
조교 드림
박규연 가 2022년5월6일 11:46에 수정함, 총 1 번 수정됨 |
|
위로 |
|
|
이광근
가입: 2005년 8월 29일 올린 글: 68
|
올려짐: 2022년5월6일 9:49 주제: Re: [HW6] 3번 parsing 질문 |
|
|
강호찬 씀: | 안녕하세요 조교님.
파싱에 관해 질문이 있습니다.
hw6의 정의를 보면, 람다식 \var.E의 E에 임의의 람다식이 들어갈 수 있는데요,
\x.(y z) 를 파싱하면, (\x.y) (z) 가 나오는 것 같습니다.
(정확하게는 \x.(y) (z) 가 나오는데, 이 식은 (\x.(y)) (z) 로 파싱된 것 같다고 해석했습니다.)
제가 생각하기에 \x.(y z) 와 (\x.y) (z) 는 다른 람다식인데,
혹시 제가 람다식을 잘못 이해한 부분이 있을까요?
저 둘은 같은 식인가요?
감사합니다. |
1. \x.yz 를 파싱하면 => 당연히 (\x.((y)(z))) 로 되야 합니다.
2. 숙제문서에 "left-associative and highest-prcedence in parsing"를 설명하면 (강의 슬라이드 - abstract syntax vs concrete syntax 편 - 다시 잘 보세요)
- "left-associative" = 왼쪽부터 만들어간 식으로 파싱한다. 예) xyz => ((xy)z)
- "highest-precedence" = 가장 우선순위가 높게 뭉친다. 예) \x.xy => (\x.(xy)), not (\x.x)(y).
-K |
|
위로 |
|
|
강호찬
가입: 2019년 9월 12일 올린 글: 24
|
올려짐: 2022년5월6일 10:46 주제: |
|
|
이해 했습니다!
답변 감사드립니다 교수님, 조교님!
강호찬 올림. |
|
위로 |
|
|
|