問題タブ [fay]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - fay のインストール方法を教えてください。
ubuntu 13.10 を実行していますが、fay のインストールに問題があります。を使用してhaskellをインストールしまし sudo apt-get install haskell-platform
た。試しcabal install fay
てみると、次のメッセージが表示されます。
install を試しcpphs
ましたが、既に持っています。
最後に、単独でインストールtype-eq
してみましたが、さすがに に依存していcpphs
ます。
私は何をすべきか?助けてくれてありがとう。
haskell - ビルド中にHaskell cabalが.jsをコンパイルする
サーバー側とクライアント側の両方のコードとして haskell を使用して Web アプリケーションを構築しているとしましょう。ghc
ビルド段階で、サーバー側コードとクライアント側コードをいくつかの haskell to js トランスパイラーでコンパイルしたいと考えています。
Haskell トランスパイラー ツールは、ファイルをフィードする必要がある実行可能ファイルを公開し、ファイル.hs
にコンパイルし.js
ます。ビルド段階で外部プログラムを実行するように cabal で指定するにはどうすればよいですか? UserHooks
フィールドbuildHook
に return type があることがわかりますIO()
。したがって、理論的には、たとえばシェル ライブラリを使用してシェル コードを実行し、トランスパイラーを実行できますが、これが最もクリーンなソリューションであるかどうかはわかりません。
fay - fay モジュール「Control.Applicative」が見つかりませんでした
foo.hs
それから
戻り値
Fay でアプリケーション プログラミングは可能ですか?
javascript - Haskell Fay シーケンス非同期呼び出し
最近、私はいくつかの JavaScript コードを Fay に移植することに決めました。これにより、型の正確性を保証し、きちんとした方法で非同期を処理できるように (また、実験することもできます)。並列 ajax 呼び出しを同期することだけを目的とした JavaScript オブジェクトをいくつか作成しました。私はHaskellを初めて使用します。
Fay では、いくつかの ajax 呼び出しを開始し、たとえばControl.Monad.Parallel.sequenceを使用してそれらを同期させたいと考えていました。ただし、 fay-jquery AJAX 関数は成功/失敗コールバックのモナドを返さず、fay スナップレットのこの例も返さないため、私は立ち往生しており、ガイダンスが切実に必要です。それらはすべて、レイジーな haskell 呼び出しを厳密な javascript ステートメントにシーケンス処理するためのように見える Fay () モナドを返します。 AJAX リクエストをオフにすると、2 つの異なるアクションが発生します。
これについて多くの質問があります:
- 継続モナドは私が探しているものですか?
- Fay で動作し、このモナドを非同期 JavaScript に使用するモジュールはありますか?
- fay-jquery の AJAX 関数の副作用は、返された Fay() の後にバインドまたはシーケンスされたものの後に発生するため、関数は不純になりますか?
- Fay リポジトリに継続モナドがあることに気付きました- Fay 自体で使用されていないのはなぜですか? 私が見つけることができる唯一のものは、 async node.js fs calls をラップするこの要点です。
回答をいただければ幸いです。彼らは、このことについての私の不安定な理解を大いに助けてくれるでしょう.
fay - レコードを ffi に渡す
レコードを JavaScript に渡すと、次のように動作します。
しかし、関数が単相でない場合、レコードは評価されず、手動で行う必要があります:
これは単純なケースで、 の余分な型付けFay$$_
がそれほど煩わしいものではありませんが、型パラメーターを持つより複雑な構造を js に渡すと、追加してFay$$_
も解決しません。ネイティブの js 型への評価が適用される場合と適用されない場合のルールを知りたいです。
fay - do 記法を有効にするために、Fay newtype から Monad を派生させます
さまざまなクラスの副作用関数を作成したいので、一部の副作用を他のものよりも安全であるとマークできます。
副作用モナドにnewtypeを作成し、それをdo記法で使用したいので、次のように宣言します。Fay
この時点で、コンパイラはbase
パッケージを見つけることができません。どうにかしてそれを行うことは可能ですか?
>>=
、return
などの独自のバージョンを のために作成することはできますがReadFay
、それをdo記法で使用できると便利です。
または、この私のアプローチよりも異なるクラスの副作用を作成する方法はありますか?
haskell - Maybe 型のシリアライズ
型をシリアル化するための正しい型は何Maybe
ですか?
Maybe
サーバー上にの型のデータ構造がありshowToFay
、それを関数でシリアル化すると、{"instance":"Nothing"}
またはのいずれにもなりませんが、または の内部で{"instance":"Maybe","slot1":<actual_value>}
そのままシリアル化されます。次に、クライアントで正しく逆シリアル化することはできません。null
Just
今のところ型を使用してdata MyMaybe a = MyNothing | MyJust a
いますが、常にパターン マッチする必要があり、 で定義されたコンビネータを使用できないため、これを行うのは困難ですMaybe
。