Haskell과 다른 언어의 혼합 사용

안녕하세요.
하스켈을 공부해 보려고 하는데 아직까지 막막한 초보입니다.

하스켈을 실전에 써먹고 싶은데, 실전에 써먹으려고 하니까 막히는 문제 한 가지가 있어서 이렇게 글 씁니다.

1. 하스켈과 다른 언어를 통합할 수 있나요?
Jython, F# 같이 바이너리 수준의 통합이 가능합니까?

2. (만약 불가능하다면) 다른 프로그램에서 하스켈 바이너리를 구동시킬 수 있는 방법이 있을까요?
OS의 프로세스를 사용한다든지, 파이프를 사용한다든지 해서요. 일단 하스켈 executable 바이너리에 파라메터를 넘겨주는 방식을 사용할 줄 모르니.. 모나드도 갑갑한 마당에 OS로부터 입력을 받는 방법은(그리고 OS로 출력을 전달해 주는 방법은) 감도 안잡히네요.

지금 C#하고 어떻게 통합해보려고 하고 있는데, OS의 프로세스 호출 명령을 사용해서 파라메터를 넘기고 리턴값을 받아올 수만 있다면 fork/exec 방법(윈도에서 할 거지만...)으로 어떻게 해볼 수 있을 것 같아요. 뭐 플랫폼 종속적이니 OS의존적이니 하는 건 나중 문제구요.

이미 하스켈 매뉴얼에 제가 원하는 답이 있는 거라면, 해당 매뉴얼과 해당 챕터 정도만 가르쳐 주셔도 괜찮습니다. 지금 튜토리얼 읽고 있는데, 반 정도 갔나요? 모나드 처음 읽고 있습니다.

댓글 보기 옵션

원하시는 댓글 전시 방법을 선택한 다음 "설정 저장"을 누르셔서 적용하십시오.

1. Jython같은

1. Jython같은 프로젝트는 있습니다. Jaskell같은 플젝도 있고 JVM쪽에 bridge를 만드는 프로젝트도 있고 꽤 다양합니다.

2. 바이너리 구동이야 파이프를 통해서건 소켓통신을 통해서건 모두 가능하지않을까요? C# 사용하신다면 .Net기반이실텐데 몇년전에 관련 프로젝트가 있긴했습니다. 요즘도 열심히 활동하는지는 잘 모르겠네요.... FFI를 통해서 .Net 과 통신을 하는 기법등을 지원하는듯했습니다.
http://www.galois.com/~sof/hugs98.net/ 에 보시면 참고할 만한 내용을 얻으실 수 있을듯합니다.

--
새로움을 느끼기에 삶은 즐겁다..
모험가 아돌 크리스틴을 꿈꾸며..
Sia..

FFI를 이용하면 됩니다

하스켈 98의 원래 스펙에는 포함되어 있지는 않으나 그 추가분으로 확정된 내용은 다음에서 찾아보실 수 있습니다.
The Haskell 98 Foreign Function Interface 1.0: An Addendum to the Haskell 98 Report
http://www.cse.unsw.edu.au/~chak/haskell/ffi/

C와의 호환을 주로 염두해 두고 만든 것 같은데요, 다른 언어로도 기능을 확장을 할 수는 있다는데 저도 안 해봐서 잘 모르겠습니다. 어쨌든 C하고는 확실히 됩니다. 현실적으로는 아마 일단 C모듈을 불러서 그 C모듈에서 또 다른 언어와 연동을 하는 게 방법일 것 같습니다.

하스켈은 함수형

하스켈은 함수형 프로그래밍을 배우고 학생들이 간결하고 깨끗한 코드 작성하며 프로그램을 구성하고 그 성질을 증명하는 방법을 익히기에 아주 좋은 언어다.

이 입문서는 처음 프로그래밍을 배우는 사람에게 가장 적합한 책이다. 프로그래밍 경험이 전혀 없는 사람도 이해할 수 있도록 모든 개념을 기초부터 차근차근 엄선된 예제를 곁들여 설명한다. 각 장에는 아주 간단한 문제부터 책에서 다루는 프로젝트를 확장하는 데 이르기까지 다양한 난이도의 연습문제를 제공할 뿐 아니라, 고급 주제에 대한 더 읽을거리도 추천하고 있다. 저자는 여러 해 동안 강의한 경험을 바탕으로 분명하고 간결하게 내용을 표현하고 있다.
------------------------------------------------------
a+ certification | dumps