게시판 인덱스

 
 FAQFAQ   검색검색   멤버리스트멤버리스트   사용자 그룹사용자 그룹   사용자 등록하기사용자 등록하기 
 개인 정보개인 정보   비공개 메시지를 확인하려면 로그인하십시오비공개 메시지를 확인하려면 로그인하십시오   로그인로그인 

리스트 사용방법 질문입니다

 
글 쓰기   답변 달기     게시판 인덱스 -> 4190.210 Principles of Programming (Fall 2012)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
황정인



가입: 2012년 9월 9일
올린 글: 18

올리기올려짐: 2012년9월14일 2:59    주제: 리스트 사용방법 질문입니다 인용과 함께 답변

1번 ex6 문제를 하다 헷갈리는데요

저는 우선 입력방법을 (list 'z 'p 'n) 형식으로 하려고 하고 이에 맞춰서 코딩을 하는데

문득 '('z 'p 'n)으로 인풋을 주었더니 결과값이 약간 오류가 생겼는데

문제가 생긴부분은 이 리스트에 car 함수를 썼을때인데요

(car '('z 'p)) 으로 했을때는 'z 그대로 리턴되고

(car (list 'z 'p)) 로 했을때는 z 만 리턴되는거같아요

이 두 표현방식에 어떤 차이가 있나요?
위로
사용자 정보 보기 비밀 메시지 보내기
황정인



가입: 2012년 9월 9일
올린 글: 18

올리기올려짐: 2012년9월14일 3:16    주제: 아 그리고 ex7 문제에서 인용과 함께 답변

ex7 문제 역시 (cons 'p 'n) 형식뿐만 아니라 (list 'p 'n) 형식도 적합한 입력이라고 생각해도 되나요?
위로
사용자 정보 보기 비밀 메시지 보내기
강동옥



가입: 2009년 9월 18일
올린 글: 602

올리기올려짐: 2012년9월14일 16:48    주제: 인용과 함께 답변

quot ' 는 정확히는 리스트를 만들기 위한 표현이 아닙니다.

그 안쪽에 있는 expression을 있는 그대로 만들겠다는 의미입니다.

그래서 '(1 2 3)과같이 쓰면 안에 있는 그대로 (1 2 3)리스트가 되는것이지요.

따라서 (list 'z 'p 'n)는 '안에 있는 z라는 symbol을 element로 가지는 list를 만들어줍니다.
(z p n) 이 되겠지요
'('z 'p 'n)은 가장 바깥쪽에 있는 quot를 먼저 보면 안쪽을 있는 그대로 돌려줘야 하므로
('z 'p 'n)이 되는 것입니다.

따라서 (cons 'p 'z)와 대응되는 표현은 (list 'p 'z) = (cons 'p (cons 'z ()))가 맞습니다.

7번도 적합한 입력입니다.
위로
사용자 정보 보기 비밀 메시지 보내기
황정인



가입: 2012년 9월 9일
올린 글: 18

올리기올려짐: 2012년9월14일 23:28    주제: 그러면 인용과 함께 답변

1.
그러면

(cons 'p 'n)
(list 'p 'n)
'(p n)

모두 결과적으로는 동일한 의미를 갖게 되는 건가요?


2.

이건 부가적인 질문인데요 가끔 리스트를 만들다보면

( (...) . p )

이런식으로 만들어지는 경우가 있던데, 구글링하다보니까 이건 결과값이 페어를 의미한다고 하던데요

전 지금까지 타입이 다른 두 값을 하나로 이어줄때 쓰는 게 페어라고 알고 있었는데, 리스트를 이용하다가 가끔씩 튀어나오길래 약간 개념이 헷갈리는 것 같습니다. 짧게나마 설명해주실수 있나요?
위로
사용자 정보 보기 비밀 메시지 보내기
강동옥



가입: 2009년 9월 18일
올린 글: 602

올리기올려짐: 2012년9월15일 0:32    주제: 인용과 함께 답변

1.
(cons 'p 'n) 와 (list 'p 'n) 는 다르지만 이번 숙제에서는 둘다 입력으로 허용하겠다고 한 것입니다. '(p n)는 (list 'p 'n)와 같은 리스트입니다.

2.
리스트는 페어의 중첩으로 이루어져 있습니다.
가장 안쪽 페어의 오른쪽 값이 null이 들어간 중첩된 페어입니다.
(list 1 2 3) = (cons 1 (cons 2 (cons 3 ())))
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
글 쓰기   답변 달기     게시판 인덱스 -> 4190.210 Principles of Programming (Fall 2012) 시간대: GMT + 9 시간(한국)
페이지 11

 
건너뛰기:  
새로운 주제를 올릴 수 없습니다
답글을 올릴 수 없습니다
주제를 수정할 수 없습니다
올린 글을 삭제할 수 없습니다
투표를 할 수 없습니다


Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group
Translated by kss & drssay