이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
최종식
가입: 2008년 9월 2일 올린 글: 40
|
올려짐: 2008년11월30일 0:11 주제: 뼈대코드들을 보면 |
|
|
제 코드도 그렇게 알아보기 쉬운건 아니지만 [..]
뼈대코드들을 보면 정말 읽기가 난해한데요 ㅠㅠ
뼈대를 보고 지난번 숙제를 잘 했나 확인해 볼라 그래도 이쯤되니 구조도 다르고 -_-;;;
@@ @+ 이런 기호적인 표현들도 표현이지만
let in end 나 if , case 등에서 하위 구문 들여쓰기 하는 방법 같은것들도 읽기가 힘드네요 ㅠㅠ
함수 패턴 매칭이 우선되는 함수가 있는 반면에 첫번째 인자에 대고 case 하는 함수도 있고.. 차이는 없지만 서도-_-;
혹시 제가 미처 알아채지 못한 예제코드를 작성할때 사용한 코딩 원칙이 있다거나
아니면 nML 작성할때 저렇게 작성해야 좀 더 사용할 수 있게 됬을때 읽기가 쉬운건가요?
아니면 코드의 가독성은 nML이나 PL 강의 에서는 그렇게 중요하게 다루는 주제가 아닌 것인지[..]
다른분들은 nml 코딩하실때 읽기쉬운 코드를 위해서 특별히 신경쓰는것들이 있으신지도 궁금하네요;ㅁ; |
|
위로 |
|
|
윤용호
가입: 2008년 9월 23일 올린 글: 257
|
올려짐: 2008년11월30일 9:49 주제: 저도 코드 독해 하다가 하루가 간것같은..... |
|
|
그래서 뼈대에 있는것중에 쓸만한건 가져다 쓰고
어지간한건 그냥 원래 했던 숙제에서 변형해야겠다...고 생각중인데
원래것이 맞았는지 당장 알길이 없으니 허허허허
그리고 궁금한게 함수 정의할때 ( @@ ) 이런 표현을 쓰고나면 이게 binary operator처럼 쓸수 있게 되는건가요? 왠지 얘들은 예외적으로 함수이름이 가운데에 쓰이는 기분이 들어서.. 이거 읽기 편해보여서 저도 숙제할때 써먹으려다가 제가 만든건 왠지 안되고 음.. |
|
위로 |
|
|
kwang 손님
|
올려짐: 2008년12월1일 13:03 주제: Re: 저도 코드 독해 하다가 하루가 간것같은..... |
|
|
윤용호 씀: | 그래서 뼈대에 있는것중에 쓸만한건 가져다 쓰고
어지간한건 그냥 원래 했던 숙제에서 변형해야겠다...고 생각중인데
원래것이 맞았는지 당장 알길이 없으니 허허허허
그리고 궁금한게 함수 정의할때 ( @@ ) 이런 표현을 쓰고나면 이게 binary operator처럼 쓸수 있게 되는건가요? 왠지 얘들은 예외적으로 함수이름이 가운데에 쓰이는 기분이 들어서.. 이거 읽기 편해보여서 저도 숙제할때 써먹으려다가 제가 만든건 왠지 안되고 음.. |
함수이름을 @등 특수문자로 시작하는 경우 infix operator로 쓸 수 있습니다.
nML정의에 정확히 나와있습니다.
조교는 확인해서 설명바랍니다.
-K |
|
위로 |
|
|
최원태
가입: 2006년 9월 16일 올린 글: 369
|
올려짐: 2008년12월1일 16:00 주제: |
|
|
http://ropas.snu.ac.kr/n/doc/n.pdf
nML 정의 문서에 6번째 페이지를 보면
prefix application 이라는 항목과
infix application 이라는 항목이 있습니다.
함수 이름을 prefixid 규칙을 따르게 만들면 prefix unary operator 처럼 쓸 수 있고
함수 이름을 infixid 규칙을 따르게 만들면 infix binary operator 처럼 쓸 수 있습니다.
prefixid 와 infixid 규칙은 nML 정의문서 4번째 페이지에 나와있어요.
예를 들어볼까요.
+ 연산과 같은 일을 하는 @@연산자를 만들고 써 봅시다.
코드: | fun (@@) a b = a + b
val result1 = 1 @@ 2
|
prefix 연산자도 비슷한 방법으로 만들고 써 볼 수 있습니다.
코드: | fun (!@) a = -1 * a
val result2 = !@ 1
|
|
|
위로 |
|
|
|