아는 사람 없냐?
기본식 (람다x M)N -> M[x<-N]
의 의미가 M식에 있는 모든 변수 x를 N으로 바꿔라... 한마디로 N이 인수고 x가 매개변수라는거자나
근데 (람다x (zx))[x<-y]같은 경우
x가 zx에 묶여 있고 인자N이 없으므로 N에는 자유로운 변수 x를 왜 u로 치환하고
그럼 (람다u (zu))[x<-y] = (람다u (zu))가 되는거야?
뭐 이걸 베타축약이라고 한다는데 걍 이렇게 두 단계(??)로 되어있으면 u로 바꾸고 뒤에꺼 없에기만 하면 되나?
뭐 이해를 하고 넘어가야겠는데.....설명 잘 해줄 플갤러 없음?
일단 표기부터 좀 제대로 해라.... (λx. z x) [x←y] 이거는 아무것도 안바뀌지...
그리고 β-reduction은 (λx. f x)y ====> f x [x←y] 이거임
쉽게 얘기해서 그냥 argument passing이라고 보면 됨 ㅇㅇ
너님은 내 이해도를 너무 높게 본듯여ㅜㅜ
여튼 결국 매개변수에 맞는 인자가 없어서 fx [x<-y]의 형태로 안바꾸고 끝내는거?
lisp이나 scheme/racket 안써봤음? 레알 그거 돌아가는 꼬라지를 보면 이해 한방 탁인데.
몸통 보면요, 없어요 아무것도 안 바뀜, ㅎㄷㄷ 근데 그새 다 까묵, 베타리덕숀
인자 처음 함수형 언어 써볼라고 하는지라 ㅋㅋㅋ 먼저 하스켈같은거 좀 써보고 보면 이해될라나
냐음... 지금보니 문제점은 치환 표기를 이해 못한데에 있는덧?
덧붙여 두지만 치환 표기하고 β-축약은 별개의 개념임 ㅇㅇ 치환은 그냥 변수를 바꾸는거고, β-축약은 expression의 구조를 바꾸는거임
그리고 문제가 되는 상황이라면 (λx. f x) [x←y] 겠지....
ㄱ-;; 책에는 왜 치환과정이랑 베타축약이 같이 나와있지..? 여튼 치환으로 얻어진 ((λu. zu)) 이걸 베타축약할 수 없는거 아님? 인자가 없는데..
죽어도 못함 ㅇㅇ
우왕ㅋ굳ㅋ ㄳ