問題タブ [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.

0 投票する
1 に答える
229 参照

javascript - fay のインストール方法を教えてください。

ubuntu 13.10 を実行していますが、fay のインストールに問題があります。を使用してhaskellをインストールしまし sudo apt-get install haskell-platform た。試しcabal install fayてみると、次のメッセージが表示されます。

install を試しcpphsましたが、既に持っています。

最後に、単独でインストールtype-eqしてみましたが、さすがに に依存していcpphsます。

私は何をすべきか?助けてくれてありがとう。

0 投票する
1 に答える
105 参照

haskell - ビルド中にHaskell cabalが.jsをコンパイルする

サーバー側とクライアント側の両方のコードとして haskell を使用して Web アプリケーションを構築しているとしましょう。ghcビルド段階で、サーバー側コードとクライアント側コードをいくつかの haskell to js トランスパイラーでコンパイルしたいと考えています。

Haskell トランスパイラー ツールは、ファイルをフィードする必要がある実行可能ファイルを公開し、ファイル.hsにコンパイルし.jsます。ビルド段階で外部プログラムを実行するように cabal で指定するにはどうすればよいですか? UserHooksフィールドbuildHookに return type があることがわかりますIO()。したがって、理論的には、たとえばシェル ライブラリを使用してシェル コードを実行し、トランスパイラーを実行できますが、これが最もクリーンなソリューションであるかどうかはわかりません。

0 投票する
1 に答える
83 参照

fay - fay モジュール「Control.Applicative」が見つかりませんでした

foo.hs

それから

戻り値

Fay でアプリケーション プログラミングは可能ですか?

0 投票する
1 に答える
196 参照

javascript - Haskell Fay シーケンス非同期呼び出し

最近、私はいくつかの JavaScript コードを Fay に移植することに決めました。これにより、型の正確性を保証し、きちんとした方法で非同期を処理できるように (また、実験することもできます)。並列 ajax 呼び出しを同期することだけを目的とした JavaScript オブジェクトをいくつか作成しました。私はHaskellを初めて使用します。

Fay では、いくつかの ajax 呼び出しを開始し、たとえばControl.Monad.Parallel.sequenceを使用してそれらを同期させたいと考えていました。ただし、 fay-jquery AJAX 関数は成功/失敗コールバックのモナドを返さず、fay スナップレットのこの例も返さないため、私は立ち往生しており、ガイダンスが切実に必要です。それらはすべて、レイジーな haskell 呼び出しを厳密な javascript ステートメントにシーケンス処理するためのように見える Fay () モナドを返します。 AJAX リクエストをオフにすると、2 つの異なるアクションが発生します。

これについて多くの質問があります:

  1. 継続モナドは私が探しているものですか?
  2. Fay で動作し、このモナドを非同期 JavaScript に使用するモジュールはありますか?
  3. fay-jquery の AJAX 関数の副作用は、返された Fay() の後にバインドまたはシーケンスされたものの後に発生するため、関数は不純になりますか?
  4. Fay リポジトリに継続モナドがあることに気付きました- Fay 自体で使用されていないのはなぜですか? 私が見つけることができる唯一のものは、 async node.js fs calls をラップするこの要点です。

回答をいただければ幸いです。彼らは、このことについての私の不安定な理解を大いに助けてくれるでしょう.

0 投票する
1 に答える
30 参照

fay - レコードを ffi に渡す

レコードを JavaScript に渡すと、次のように動作します。

しかし、関数が単相でない場合、レコードは評価されず、手動で行う必要があります:

これは単純なケースで、 の余分な型付けFay$$_がそれほど煩わしいものではありませんが、型パラメーターを持つより複雑な構造を js に渡すと、追加してFay$$_も解決しません。ネイティブの js 型への評価が適用される場合と適用されない場合のルールを知りたいです。

0 投票する
1 に答える
29 参照

fay - do 記法を有効にするために、Fay newtype から Monad を派生させます

さまざまなクラスの副作用関数を作成したいので、一部の副作用を他のものよりも安全であるとマークできます。

副作用モナドにnewtypeを作成し、それをdo記法で使用したいので、次のように宣言します。Fay

この時点で、コンパイラはbaseパッケージを見つけることができません。どうにかしてそれを行うことは可能ですか?

>>=returnなどの独自のバージョンを のために作成することはできますがReadFay、それをdo記法で使用できると便利です。

または、この私のアプローチよりも異なるクラスの副作用を作成する方法はありますか?

0 投票する
0 に答える
165 参照

haskell - Maybe 型のシリアライズ

型をシリアル化するための正しい型は何Maybeですか?

Maybeサーバー上にの型のデータ構造がありshowToFay、それを関数でシリアル化すると、{"instance":"Nothing"}またはのいずれにもなりませんが、または の内部で{"instance":"Maybe","slot1":<actual_value>}そのままシリアル化されます。次に、クライアントで正しく逆シリアル化することはできません。nullJust

今のところ型を使用してdata MyMaybe a = MyNothing | MyJust aいますが、常にパターン マッチする必要があり、 で定義されたコンビネータを使用できないため、これを行うのは困難ですMaybe