이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
김무환
가입: 2018년 9월 12일 올린 글: 9
|
올려짐: 2018년10월17일 13:03 주제: 과제 3-1 Record 관련 질문 |
|
|
뼈대 코드에 있는 RECORD와 FIELD를 구현해야 하는데 감이 안 와서 질문드립니다.
type value =
| Num of int
| Bool of bool
| Unit
| Record of (id -> Loc.t)
이 부분에서, Record가 id -> Loc.t로 정의되어 있습니다. 제가 생각하기에 Record는 어떤 이름을 갖고, 그 이름에 대응되는 (id -> Loc.t)의 리스트로 정의되어야 할 것 같은데 뼈대 코드의 정의로는 그런 표현이 안 되는 것 같습니다. 뼈대 코드에서 정의한 Record가 정확히 어떤 구조로 사용되어야 하는지 조금만 더 설명해주실 수 있을까요..? ㅠㅠ |
|
위로 |
|
 |
로파스 Site Admin
가입: 2012년 9월 9일 올린 글: 280
|
올려짐: 2018년10월17일 14:17 주제: |
|
|
언어 정의에 따라 레코드가 고유의 이름을 가질수도있겠습니다만,
K-언어에서 레코드는 단순히 여러개의 필드값이 각각 값을 갖고있는 일종의 값의 모음으로 정의하기 때문에 굳이 질문과 같이 정의하실 필요는 없어보입니다.
x = {a = 1, b = 2}
이런식의 레코드를 하나 정의하셨으면,
개념적으로 x라는 변수에는 "a를 받으면 l_1을 내놓고 b를 받으면 l_2를 내놓는 레코드"라는 값을 저장하게 될것입니다.이때 l_1에는 1이 저장되어있고, l_2에는 2가 저장되어있어야 하겠죠. (정확히는 환경에서 x가 가르키는 메모리주소에 이 값을 저장하겠지요.)
이것은 오켐엘에서 id -> Loc.t 라는 타입을 가지는 함수의 역할과 일치하기 때문에 뼈대코드와 같이 정의한 것입니다.
-조교 드림. |
|
위로 |
|
 |
|
|
새로운 주제를 올릴 수 없습니다 답글을 올릴 수 없습니다 주제를 수정할 수 없습니다 올린 글을 삭제할 수 없습니다 투표를 할 수 없습니다
|
Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group Translated by kss & drssay
|