2016-07-02 9 views
4

나는 하스켈을 처음 사용했다. 최근에 나는 Haskell에서 코드를 작성하여 Javascript로 컴파일 할 수있는 GHCJs라는이 컴파일러에 대해 들었습니다.하스켈의 자바 스크립트 라이브러리 사용하기

멋진 대화 형 3D 애니메이션 제작을 위해 three.js 및 webgl과 같은 라이브러리를 사용하고 싶습니다. GHCJ를 사용할 때 Haskell에서이 자바 스크립트 라이브러리를 호출 할 수 있습니까?

답변

5

예, ghcjs 컴파일 된 하스켈에서 자바 스크립트 라이브러리를 호출 할 수 있습니다.

다음은 간단한 예입니다 :

{-# LANGUAGE JavaScriptFFI  #-} 
{-# LANGUAGE OverloadedStrings #-} 

import qualified Data.JSString as T 
import qualified GHCJS.Foreign 

foreign import javascript unsafe "alert($1)" alert :: T.JSString -> IO() 

main = alert "hello world" 

이 예에서 볼 수 있듯이, 당신이 당신의 하스켈 프로그램에서 JS 기능을 사용할 수 있도록 foreign import javascript 기능을 사용합니다.

공식 WebGL 인터페이스 라이브러리가 있는지 확실하지 않지만 웹 검색을 통해 다른 사람들이 부분 인터페이스 라이브러리를 만들었다는 것을 알 수 있습니다. this example을 참조하십시오. 기본적으로 응용 프로그램에서 사용하는 함수에 대해 foreign 선언을 만들어야합니다.

three.js를 들어

,이 github의의 REPO를 발견

https://github.com/manyoo/ghcjs-three

즉, JS에서 하스켈 코드를 호출이 SO 스레드 볼 수도 있습니다 :

How to call Haskell from Javascript with GHCJS

+0

이를 예를 들어 컴파일 오류가 발생했습니다 :'No instance for (Data.String.IsString T.JSString)'. 'Import qualified Data.JSString as T'와'Import qualified GHCJS.Types as T'를 대체하면 에러가 사라집니다. –

+0

Ok - 감사합니다! 답변이 업데이트되었습니다. – ErikR

관련 문제