게시판 인덱스

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

과제 1-2 질문입니다.

 
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2018)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
고태건



가입: 2018년 9월 14일
올린 글: 1

올리기올려짐: 2018년9월14일 16:25    주제: 과제 1-2 질문입니다. 인용과 함께 답변

과제 1-2 test case에서 함수를 정의할때

let matrix (i,j) = ~~~~~ in 을 사용하는데

뒤에 in의 의미를 잘 모르겠습니다.

in을 그대로 둔 상태에서 ocaml 1-2.ml을 통해 실행하면 syntax 에러가 납니다.

in을 지우면 잘 되는데 in을 넣었을때 꼭 되어야하는지, 왜 넣는 것인지 궁금합니다.

환경은 개인맥북 terminal 이용하고 있습니다.
위로
사용자 정보 보기 비밀 메시지 보내기
배요한
Site Admin


가입: 2018년 3월 6일
올린 글: 107

올리기올려짐: 2018년9월14일 17:01    주제: 인용과 함께 답변

안녕하세요, 고태건 학생.

1. let x = ~ in의 in은 변수의 유효범위(scope)를 의미합니다.
예를 들어, let x = 3 in A 라고 하면
1) x는 3이라는 값으로 정의한다.
2) x는 오로지 A라는 범위에서만 유효하다.
라는 뜻입니다.

2.
코드:
let matrix (i, j) = ((float_of_int i) *. 10.) +. (float_of_int j) in
sumprod (matrix, 2, 7)


위 코드를 .ml파일에 넣고 컴파일 하면 'in'에서 syntax error가 난다는 의미죠?
matrix (i,j)는 함수타입인데 sumprod (matrix,2,7)에서 나오는 float값과 바인딩 될려고 해서 생긴 문제입니다.
matrix는 함수이고, sumprod (matrix,2,7)에서 나오는 값을 어떤 변수(여기서는 result)에 바인딩 시킬려면 다음과 같이 하시면 됩니다.

코드:

let result =
let matrix (i, j) = (float_of_int i) *. 10. +. (float_of_int j) in
  sumprod (matrix, 1, 1)



앞서 태건 학생이 말한것 처럼 'in'을 포함하지 않고 다음과 같이 matrix을 정의하게 된다면 matrix는 함수라고 잘 정의 되었기 때문에 syntax error라고 뜨지 않습니다.
코드:
let matrix (i, j) = (float_of_int i) *. 10. +. (float_of_int j)


감사합니다.


TA 이동권
e-mail: dklee@ropas.snu.ac.kr

TA 배요한
e-mail: yhbae@ropas.snu.ac.kr
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2018) 시간대: GMT + 9 시간(한국)
페이지 11

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


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