안녕하세요.
하스켈을 공부해 보려고 하는데 아직까지 막막한 초보입니다.
하스켈을 실전에 써먹고 싶은데, 실전에 써먹으려고 하니까 막히는 문제 한 가지가 있어서 이렇게 글 씁니다.
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