김재원
가입: 2008년 10월 7일 올린 글: 13
|
올려짐: 2008년12월7일 21:00 주제: 마지막 숙제에 대해서.. 그리고 감사합니다 |
|
|
5일 자정으로 마지막 숙제의 due는 종료되었고,
약 3시간 15분 뒤면 딜레이 듀 조차도 종료되는 상황에서,
....이제서야 1차적인 구현을 마친 학생입니다 ㅠㅠ
대충 답이 나오기는 하는데,
eq와 write를 구현하는 데 있어서 완전히 polymorphic하지 않은 변수를 완전하게 generalize 시켜버리는 오류를 끝내 해결하지 못하였습니다.
해결하지 못한 부분에 대하여 설명을 해보고자 합니다.. 구현이 사람마다 워낙 달라서 이해 하기 힘드시겠지만 ㅠ 최선을 다해보겠습니다..
무슨말인가 하면,
write 함수의 인자로는 int, bool, string 밖에 들어가지를 못하는데,
이를 그냥 generalize 시켜버린다, 이런 이야기입니다..
그렇기 때문에 constraint list에, write 함수에 딸려 들어가는 타입변수를 write 함수를 처음 정의할 때 넣어도, 나중에 그 write 함수를 application 할 때 쯤 되면, constraint list에 들어가있는 타입변수는 온데간데 없고, generalize 되면서 바뀌어 버린 넘만 gamma (혹은 substitution)에 남게 된다는 것이지요..
그러다 보니 나중에 막판에 가서 constraint list를 이용하여 그와 같은 사례들을 걸러주려고 보면 그 리스트안에 들어있는건 갈길을 잃은 타입변수...
이 문제를 해결하기 위해선 generalize를 하면서 그 새로이 generalize된 타입변수와 옛날 타입변수를 서로 바인딩 시켜줘야 한다고 생각했습니다. 그래서 바인딩을 하려고 보니.... 이미 구현상 불가능하게 되어버렸습니다.. (저의 경우 바인딩을 함수로 처리하였는데, 함수의 인자값이나 리턴값으로 substitution 을 돌려주지 않게 설계가 되어 있어, 바인딩을 고친다 하더라도 그 바인딩을 실질적으로 계속하여 가지고 갈 방도가 없게 된 것이었습니다..)
어차피 이제 제출도 3시간밖에 안남아서 뭔가 실질적인 해결방도를 찾기는 포기한 상태입니다만, 혹시라도 이 길고 지리한 글을 읽는 분이 계시면 (그리고 이 말도 안되는 설명을 이해하는 분이 계시면 ㅠㅠ ㅋㅋ), 그리하여 '아 이 문제, 나도 겪었던 문제인데!' 라고 생각되는 분이 계시면 댓글 꼭 부탁드립니다..
한 사흘 이 문제에 매달리고 나니 설령 제출에 포함을 못시킨다 하더라도 정말 궁금하네요...
저에게만 그랬던 것인지는 모르겠지만,
사실 프로그래밍 언어라는 과목은 저에게는 정말 '과분한' 과목이었던 것 같습니다.. 저에게는, 수업 자체를 따라가는 것은 물론, 과제 하나하나를 할 때마다 정말 뼈를 깎는 노력과 인내를 필요로 했던 것 같습니다.. 그러다보니 이 과목 점수 자체는 아주 안좋게 나오겠지만 (ㅋㅋ 6번 숙제까지 점수를 합산해보았더니 제출하지 않은 것이 하나도 없음에도 점수가 참으로 가관이더군요...) 오랫동안 기억에 남을 것 같습니다.
질문만 하면 될 것을 이렇게 지리하게 소감을 밝히는 것은,
이 게시판을 보실 교수님, 조교님, 그리고 여러 다른 수강생분들께 감사의 표시를 하고 싶어서였습니다..
너무나도 어렵고 고생스러운 수업이었음에도, 정말 그만큼 남는 것이 많은 수업이었다는 점에서, 그리고 그렇게 된 것에는 교수님과 조교님의 노고가 있었다는 점에서, 교수님과 조교님께 감사의 말씀 드리고 싶고,
무엇보다도 다른 수강생분들께는, 저는 그토록 어려워했던 숙제를, 그래서 저는 정말 주변 사람들을 고문하는 정도로 질문에 질문을 거듭해가며 했던 숙제를, 게시판에 질문글 몇개 없이 (그나마 올라오는 질문글들은 너무나 높은 수준의 것들이어서 저같은 저급한 학생들은 질문조차 이해하기 어려웠다는 ㅠㅠ) 척척 해나가시는 것 같아서 감탄을 금할 수 없었다는 말씀을 드리고 싶었습니다..
피엘만 한 12시간 넘게 잡고 있다 보니, 쓸데없이 말이 길어지고 두서가 없네요.. (두괄식으로 써야하는데!ㅋㅋ)
한학기동안 다른 수강생 여러분들, 그리고 교수님과 조교님, 정말 감사했습니다.
(위의 질문, 답할 수 있는 분 답해주시면 정말 정말 더욱 감사드리겠습니다 ㅋㅋ) |
|