eunmin / sicp

SICP 릴레이 문제 풀이
Eclipse Public License 1.0
3 stars 4 forks source link

궁금한점 올립니다~ #6

Open blueooh opened 8 years ago

blueooh commented 8 years ago

(defn abs "절대값을 리턴한다" [a] (if (< a 0) (- a) a))

프로시져를 정의 할때 "(쌍따옴표 안에 들어간 스트링은 어떤 역할을 하는건가요? 단순히 주석인가요?

dalzony commented 8 years ago

주석은 아니고 docstring 인데요. (주석은 ;#_을 사용합니다) 클로저에 정의된 함수들의 docstring은 doc함수로 확인할 수 있습니다. 즉 함수의 정의나 용법을 써 놓으면 문서화 되어 볼 수 있는 장점이 있지용.

예: inc함수의 docstring확인

=> (doc inc)
-------------------------
clojure.core/inc
([x])
  Returns a number one greater than num. Does not auto-promote
  longs, will throw on overflow. See also: inc'
nil

첨언하자면, 클로저 함수는 다음과 같이 정의할 수 있습니다.

(defn function-name
    "Your docstring goes here"
    [your argument list & more]
   (call some functions))

참고로 docstring은 쓰지 않아도 무방합니다. perl의 경우에도 pod 문법(?)을 쓰면 문서를 잘 만들어줬던 기억이 있는데, 비슷하게 봐도 될것 같습니다.