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

'함수형 언어/Scheme'에 해당되는 글 5건

  1. 2013.02.14 Gambit-C Scheme 소개글
  2. 2013.02.09 [ERR] no #%top syntax transformer is bound
  3. 2013.02.07 [참고] eval, apply
  4. 2007.06.27 PLT Scheme - mysqlclient
  5. 2007.06.26 PLT Scheme package 위치

Gambit-C Scheme 소개글

함수형 언어/Scheme 2013. 2. 14. 01:48 by manywaypark

Gambit-C Scheme은 gsi(interpreter), gsc(compiler)로 이루어져 있고, compiler는 C 코드를 생성해준다.

아래는 Scheme에 관한 간단한 튜토리얼 및 Gambit-C를 사용해서 native app을 개발하는 것을 설명한 링크이다.

http://www.devx.com/opensource/Article/42778

 

happy hackin'

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'

[참고] eval, apply

함수형 언어/Scheme 2013. 2. 7. 00:35 by manywaypark

http://www.cs.washington.edu/education/courses/cse341/12au/racket/eval-apply.html


happy hackin'

PLT Scheme - mysqlclient

함수형 언어/Scheme 2007. 6. 27. 19:14 by manywaypark
mysql과 scheme을 연동해보자.
http://www.cs.uvm.edu/~dvanhorn/scheme/
unix/linux에서는 mysqlclient.ss에 있는 설명으로 충분히 빌드가 가능하다.
window환경에서는 다음 링크의 설명대로 하면 될듯하다.
http://www.cs.brown.edu/pipermail/plt-scheme/2004-July/006230.html
요지는,
C:\Program Files\PLT\collects 디렉토리에서 컴파일한다고 가정하면, 다음과 같이...
..\mzc --auto-dir ++ldf c:\mysql\lib\opt\mysqlclient.lib ++ldl d:\mysql\lib\opt\mysqlclient.lib ++ldl WSock32.Lib ++ldl AdvAPI32.Lib ++ccf -Ic:\mysql\include ++ccf -D__LCC__  mysqlclient\mysqlclient.ss

MS SDK의 무료(express) 버전이 필요할지도 모른다. 언제 무료 버전이 생긴거지? ㅋ
http://msdn.microsoft.com/vstudio/express/downloads/
VC++를 설치하자.
VC++만 설치하면 될 줄 알았는데, "winsock.h"를 못 찾는다.
http://www.microsoft.com/downloads/details.aspx?FamilyID=a55b6b43-e24f-4ea3-a93e-40c0ec4f68e5&DisplayLang=en
Platform SDK를 설치하자.

다음과 같이 하면 잘 될것이다.

VC++ 사용시 - 거지 같지만, Visual Studio 2005 Command Prompt로 들어가서 하는 것이 정신건강에 좋다.
..\mzc -v --auto-dir ++ldf "c:\art\MySQL\MySQL Server 5.0\lib\opt\mysqlclient.lib" ++ldl "c:\art\MySQL\MySQL Server 5.0\lib\opt\mysqlclient.lib" ++ldl "C:\Program Files\Microsoft Platform SDK\Lib\WSock32.Lib" ++ldl "C:\Program Files\Microsoft Platform SDK\Lib\AdvAPI32.Lib" ++ldl "C:\Program Files\Microsoft Platform SDK\Lib\Uuid.Lib" ++ccf -I"c:\Program Files\Microsoft PlatformSDK\Include" ++ccf -I"c:\art\MySQL\MySQL Server 5.0\include" ++ccf -D__LCC__  mysqlclient\mysqlclient.ss

cygwin 사용시 - 이건 실패. 시간있을때 성공하게 만들어보자.
..\mzc -v --auto-dir ++ldf "c:\art\MySQL\MySQL Server 5.0\lib\opt\mysqlclient.lib" ++ldl "c:\art\MySQL\MySQL Server 5.0\lib\opt\mysqlclient.lib" ++ldl \art\cygwin\lib\w32api\libwsock32.a ++ldl \art\cygwin\lib\w32api\libadvapi32.a ++ccf -I"c:\art\cygwin\usr\include\w32api" ++ccf -I"c:\art\MySQL\MySQL Server 5.0\include" ++ccf -D__LCC__  mysqlclient\mysqlclient.ss


happy hackin'

PLT Scheme package 위치

함수형 언어/Scheme 2007. 6. 26. 17:51 by manywaypark

윈도우에서 기본 설치를 했을 때 설치 디렉토리말고 다른 쪽에 모듈(패키지)들이 깔린다. 특히 planet를 이용해서 설치한 것들의 소스를 확인 할때 이 디렉토리를 찾아보시라.
C:\Documents and Settings\%USERNAME%\Application Data\PLT Scheme\


1 
분류 전체보기 (306)
잡담 (20)
함수형 언어 (65)
Scheme (5)
Lisp (14)
Erlang (31)
R (3)
Elixir (11)
emacs (16)
java (18)
tips & tricks (154)
사랑 (1)
가사 (0)
독서 (4)
mobile (6)
비함수형 언어 (2)

공지사항

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

03-29 16:00