1

それで、この質問に答えているときに、質問をした人が JavaScript 開発者のように見えることに気付きました。Haskell で書いたコードは簡単なので、急いで JavaScript にコンパイルしてみようと思いました。

それで、速攻の Windows バイナリ パッケージをダウンロードし (なぜ .msi には再起動が必要なのですか?!!?)、それをパスに追加して発行haste-cabal updatehaste-cabal install split、 の出力を少し読んだ後、次のhastec --helpように発行しました。

PS E:\h\stackoverflow> hastec -o hexagon.js --pretty-print hexagon.hs
私が探している出力を取得する方法についての私の最善の推測として。

私の予想とは反対に、速攻の出力は次のとおりです。

hastec.exe: user error (shell expression failed in readModule: Data.Binary.Get.runGet at position 8: not enough bytes)

それで、私の質問: Java スクリプトのソース ファイルを取得するにはどうすればよいですか?

4

1 に答える 1

1

古いバージョンの Haste が転がっていたり.jsmod、ソース ディレクトリに別のバージョンのコンパイラの中間ファイル (たとえば ) があったりする可能性はありますか? これは、破損した中間ファイルに遭遇したときに Haste が生成する (まったく役に立たない) エラー メッセージのように聞こえます。

呼び出しているバイナリのバージョンが期待どおりであることを確認してください ( hastec --version)。次に、ディレクトリ内のすべての中間ファイルと 内のすべてのファイルを削除し%USERPROFILE%\AppData\Roaming\haste、 を再インストールし、フラグsplitを指定して再コンパイルしてみてください。-fforce-recomp関数を追加してmain、Haste がリンクを開始するプログラムへのエントリ ポイントを持つようにする必要があります。一部の Haskell 関数を外部 JavaScript で使用できるようにするだけの場合は、export 外部関数インターフェイスを使用できます。

{-# LANGUAGE OverloadedStrings #-}
module Main where
import Haste.Foreign
import Hexagon

main = export "picture" Hexagon.picture

--onexecまた、フラグを使用してプログラムをコンパイルし、デフォルトであるページの読み込み時ではなく、読み込まれたときにすぐにmain実行およびエクスポートされるようにすることもできます。picture

> hastec -o hexagon.js --pretty-print --onexec hexagon.hs

これを行った後、後に含まれるコードは、たとえばサイズ 5 の画像を生成するためにhexagon.js呼び出すことができます。Haste.picture(5);

(Re: MSI インストーラーは再起動を必要とします。これは Haste バイナリを に追加するために必要ですが、%PATH%すぐには有効になりません。ただし、再ログインするだけで有効になると思います。)

于 2016-10-26T12:24:19.550 に答える