2011년 1월 6일 목요일
리스프는 함수형 언어입니다. 아래에 보듯 괄호 안의 가장 왼쪽 것이 함수입니다.
아래 아래 부분에 루비 소스에서 가장 왼쪽에 있는 토큰이 함수입니다.
그렇다고 해서 크게 힘든 건 하나도 없고 리스트에서 함수 만들듯이 하면 됩니다.
Glyph 클래스 내에 메소드 만들어 주고 block 을 받아서 instance_eval 해주면 됩니다.
리스프 예찬자들은 code as data, data as code 라고 예찬을 하는데,
그것이 아니라 list as data, data as list 라고 해야 옳습니다.
루비에서는 string as data, data as string 으로 또한 잘 됩니다. 가끔 리스프와 비교하여 단점이라고 하는 사람이 있는데 리스프에서 defmacro를 보면 code 가 아니라 list 로서 인자(argument)를 넘겨줍니다.
list 는 code의 부분 집합(subset)입니다.
리스프에서 코드를 데이터로 다룰려면 (quote (a b c)) 이런 식으로 써야 됩니다.
결국 루비에서 "(큰따옴표) 로 묶는 것이랑 별반 차이가 없습니다.
아래의 예제는 quote, " 를 사용한 예가 아니라 DSL 로서의 비교를 한 예입니다.
Glyph do
name "L_BB"
xMin 309
yMin 827
xMax 1743
yMax 1542
contour do
# pt "x" => 1743, "y" => 827, "on" => 1
pt 1092,827,1
pt 1092,1542,1
pt 1233,1542,1
pt 1233,1288,1
pt 1602,1288,1
pt 1602,1542,1
pt 1743,1542,1
end # of contour
contour do
pt 961,827,1
pt 309,827,1
pt 309,1542,1
pt 451,1542,1
pt 451,1288,1
pt 819,1288,1
pt 819,1542,1
pt 961,1542,1
end # of contour
end # of glyph
(Glyph
(name "L_BB")
(xMin 309)
(yMin 827)
(xMax 1743)
(yMax 1542)
(contour
; (pt "x" => 1743 "y" => 827 "on" => 1)
(pt 1092 827 1)
(pt 1092 1542 1)
(pt 1233 1542 1)
(pt 1233 1288 1)
(pt 1602 1288 1)
(pt 1602 1542 1)
(pt 1743 1542 1)
) ; of contour
(contour
(pt 961 827 1)
(pt 309 827 1)
(pt 309 1542 1)
(pt 451 1542 1)
(pt 451 1288 1)
(pt 819 1288 1)
(pt 819 1542 1)
(pt 961 1542 1)
) ; of contour
) ; of glyph
10여 년간 한글 문제 해결도 못하고 있는데 오픈소스 이 딴거 개나 줘버리라고 하세요. 오픈소스 개발자님, 관계자님 제가 하는 일에 제발 신경 끄세요. 도움 주지 마세요. 시간 빼앗겨 방해만 됩니다.
Translate
2018년 7월 21일 토요일
피드 구독하기:
댓글 (Atom)
응용 어플 끝글자 버그 잡는 거 진짜 개쉽습니다
그 동안 제가 끝글자 버그를 잡지 않고 방치한 이유 우선 책임, 의무가 없습니다. 제가 해당 어플 개발자도 아닐 뿐더러 오픈소스가 원래가 유지보수 의무, 보증 책임이 없습니다 . 이렇게 개떡 같은 게 오픈소스입니다. 전 과거 libhwp 하냐고...
-
인터넷에서 웹 브라우저로 파일을 받으면 서버 측의 잘못된 설정으로 인하여 한글 파일 이름이 이상하게 되는 경우가 많다. cp949 코드가 utf-8 로 둔갑된 경우 사용자 컴퓨터 환경이 utf-8 환경이라면 그 파일 이름 자체가 utf-8 이기 ...
-
예전에 dasom 개발하면서 많은 글을 작성했었는데 당시 drupal 로 홈페이지를 사용했었는데 drupal 관리를 못해서 데이터를 다 날려먹었습니다. 복구가 안 되요. 그래서 그 때부터 그냥 블로거에 글쓰고 있는 겁니다. 블로거는 구글에서 관리를 하...
-
그 동안 제가 끝글자 버그를 잡지 않고 방치한 이유 우선 책임, 의무가 없습니다. 제가 해당 어플 개발자도 아닐 뿐더러 오픈소스가 원래가 유지보수 의무, 보증 책임이 없습니다 . 이렇게 개떡 같은 게 오픈소스입니다. 전 과거 libhwp 하냐고...
댓글 없음:
댓글 쓰기