게시판 인덱스

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

define 시 괄호 관련

 
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.210 Principles of Programming (Spring 2007)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
장민석



가입: 2006년 9월 5일
올린 글: 165

올리기올려짐: 2007년3월9일 12:20    주제: define 시 괄호 관련 인용과 함께 답변

조교님께서 올리신 [숙제를 시작하기 전에 꼭 읽어주세요] 공지를 보면

인용:

코드:
(define f 1)
과 같이 정의하면 f는 함수가 아니라 정수가 되어 숙제에서 제시한 타입과 다르게 됩니다. 정확한 타입을 지키기 위해서는
코드:
(define (f) 1)
과 같이 정의하셔야만 제대로 된 채점결과가 나옵니다.


과 같은 부분이 있습니다. 그런데 scheme에서는 괄호 안은 언제나 프로시저나 스페셜 폼이 되어야 한다고 하셨잖아요. (define (f) 1)에서 (f) 부분은 이 룰의 예외인 것인가요? 그리고 이 경우엔 단순히 함수이름이라는 것을 표시하기 위한 용도로 괄호를 친 것인지요?

ps. 한 학기 동안 열심히 공부해보아요~
위로
사용자 정보 보기 비밀 메시지 보내기
이희종



가입: 2006년 3월 7일
올린 글: 50

올리기올려짐: 2007년3월9일 13:06    주제: 인용과 함께 답변

인용:
단순히 함수이름이라는 것을 표시하기 위한 용도로 괄호를 친 것인지요?

네, 맞습니다. special form인 define과 함께 정의된 문법의 일부라고 생각하시면 됩니다.

코드:
(define (f) 1)
은 define을 통해 unit을 받아 1을 리턴하는 함수를 정의하는 한 방법입니다.
예를 들어 숫자 하나를 받아서 거기에 1을 더한 값을 돌려주는 함수는
코드:
(define (f x) (+ x 1))
과 같이 정의 할 수 있습니다. 이것은 엄밀히 말하면
코드:
(define f (lambda (x) (+ x 1)))
의 syntactic sugar입니다. 프로그래밍의 편의를 위하여 동일한 뜻이지만 더 쉽게 사용 할 수 있도록 해 놓은 것이죠.
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.210 Principles of Programming (Spring 2007) 시간대: GMT + 9 시간(한국)
페이지 11

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


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