manywaypark's Blog
개발, 검색, 함수

'no top syntax transformer is bound'에 해당되는 글 1건

  1. 2013.02.09 [ERR] no #%top syntax transformer is bound

eval을 써서 멋지게 해결했다고 생각했는데 실행파일을 만들어서 실행하거나, DrRacket에서 run 버튼으로 실행할 때 다음과 같은 오류가 났다.

fn-name: unbound identifier;

 also, no #%top syntax transformer is bound in: fn-name

eval을 쓸때 REPL에서하는 것과 그냥 실행하는 것에 차이가 있다 (phase에 따른 namespace의 문제. 자세한건 링크 참조).

빨리 해결하려는 맘에 (define ns (make-base-namespace)) (eval ... ... ns)의 형태로 변경하라는 예제를 보고 그렇게 했더니 아래와 같은 다른 에러가 났다. 아예 정의가 안됐다는 에러.

(나중에 찬찬히 읽어보니 make-base-namespaceracket/base module이 export하는 symbol들만 resolve가능하게 해주는 것이었다)

fn-name: undefined;

 cannot reference undefined identifier

해결책은 namespace anchor를 사용하는 것이었다. 참고 링크의 맨 마지막에 있다(역시 끝까지 읽어보는 것이 중요하다).

(define-namespace-anchor a)

(define ns (namespace-anchor->namespace a))

......

(eval ... ... ns)


ref: http://docs.racket-lang.org/guide/eval.html


happy hackin'

1 
분류 전체보기 (306)
잡담 (20)
함수형 언어 (65)
emacs (16)
java (18)
tips & tricks (154)
사랑 (1)
가사 (0)
독서 (4)
mobile (6)
비함수형 언어 (2)

공지사항

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

04-26 00:06