2014-05-09 5 views
1

나는 erlang에 서버를 작성하고 있습니다. 그러나 이미 공통 lisp (유전 알고리즘)에서 일부 코드를 작성했습니다. 나는 완전히 새로운 것입니다. erlang입니다. elrang (nif, port 또는 shell과 같은)에서 컴파일 된 언어를 호출 할 수있는 책을 읽었습니다. 그러나 http://lfe.github.io/을 찾았으니, 일반적인 lisp 코드를 호출하는 가장 좋은 방법은 무엇인지, lfe로 다시 작성 하시겠습니까?Erlang에서 Common Lisp 코드를 호출하십시오.

답변

2

가장 좋은 방법은 가지고있는 코드와 어떻게 상호 작용해야하는지에 따라 다릅니다.

  • NIF : 고속 함수 호출하지만 리스프 코드의 문제로 얼랑 VM
  • 쉘 충돌 할 가능성이있다 : 당신과 잘 격리에 대한 작업의 아마 최소한의, 그러나 매우 고비용. Lisp을 1 분에 몇 번만 호출하는 경우이 작업을 수행하십시오.
  • TCP 또는 다른 소켓 : 잘 격리되어 있으며 빠릅니다 (NIF보다 느림). Lisp 코드를 서비스로 사용 가능하게하는 것이 다른면에서는 좋을 수도 있습니다. 글쓰기가 필요합니다.
  • LFE : Lisp 코드를 다시 작성해야합니다. LFE는 Common Lisp이 아니므로 다시 컴파일 할 수는 없습니다.
2

LFE 적당한 LISP이지만 하지 CL이다. 따라서 LFE를 사용하려면 프로그램을 수정해야합니다. 그러나이 작업을 수행하면 동일한 VM에서 Erlang과 함께 LFE가 실행되고 인터페이스가 투명 해 지므로 erlang과의 상호 작용이 간단 해집니다.

CL에서 프로그램을 실행하려면 가장 쉬운 방법은 포트를 사용하고 CL 셸에 명령을 통해 그리고 아마도 파일과 함께 CL과 통신하는 것입니다.