[Lisp] 콘솔 출력 함수들

[원본 링크]

이제까지는 print라는 함수로 출력을 행했는데. 이건 좀 제약이 많고 부실한 편이다.


image

image 보라. 이 멍청한 함수는 내용만 출력하는게 아니라  따옴표까지 묶어서 토큰째로 출력을 해버린다.

이스케이프도 인식을 못하고 지멋대로 개행도 한다.


pprint
print랑 별 차이가 없다.
trailing space가 방출(omit)된다고 하는데 뭔소린지 모르겠다.
그냥 똑같은거 같은데?

이름은 또 왜 저 모양인지 image

image


prin1
이건 print의 개행을 하지 않는 버전이다.

이름이 참 거지같은데 무슨 정신으로 이따위 이름을 쓴건지 모르겠다. image

image 토큰 통째로 받아먹는건 이놈이나 저놈이나 똑같다.


write
이것도 개행 안하는건 똑같은데, 토큰째로 받아먹는 것도 똑같다.
뭔차인지 모르겠다.
나중에 깨달으면 수정하도록 하겠다. image

image


princ
prin1이랑 거의 같다.
이름은 여전히 거지같지만 그래도 좀 나은 점이 있다. 토큰 그대로 받아먹는게 아니라 따옴표 없이 제대로 나온다는 것이다! image

image


format
이제 좀 제대로된 녀석이다.
첫번째 인자로는 t or nil, 두번째 인자로는 포맷팅 문자열, 그 이후로는 가변인자를 받는다.

첫번째 인자는 표준입출력을 쓸건지 말건지를 표시한다.

두번째 인자의 포맷팅 문자열엔 ~로 시작하는 서식문자를 넣을 수 있다.
~a(aesthetic)가 가장 일반적인 형태의 서식문자이고, ~S, ~%, ~&, ~C, ~F, ~E, ~G 등등 있는데 뭔지모르겠다.
나중에 수정하도록 하겠다.

여튼 이렇게 짜면 image

image 잘 동작하는걸 볼수있다.

#\로 시작하는건 특수하게 정의된 문자인데, 저 Newline은 개행을 나타낸다. 저거 이외에도 몇가지 있다.


참조
https://www.gnu.org/software/emacs/manual/html_node/elisp/Output-Functions.html
https://www.tutorialspoint.com/lisp/lisp_input_output.htm
https://www.tutorialspoint.com/lisp/lisp_characters.htm
http://www.gigamonkeys.com/book/a-few-format-recipes.html