問題タブ [purescript]
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.
purescript - PureScript と型クラス
PureScript 型クラスに問題があります。前もって、私は Haskell の専門家でもないので、これらが明らかな誤りである場合は申し訳ありません。
私はいくつかの異なるアプローチを試しましたが、それぞれに壁にぶつかりました。show
基本的に、グラフのエッジの関数を定義しようとしています。1 つのアプローチは次のようになります。
これは私にエラーを与えます:
e
これは、 の定義での型を推論しているという事実と関係があると思いますshow
。ここに型注釈を追加しようとしましたが、構文エラーが発生します。
私が試した2番目のことはこれでした:
これは私に与えます:
そこで、基になる型を明示的にリストしてみました。
それは私に与える:
「型クラス インスタンス ヘッド」が何かわからないので、そこから先がありません。
3 回の試みはすべて失敗しました。おそらく、まったく異なる理由で。PureScript は初めてなので、何が問題なのかわかりません。私は、さまざまなData.*
タイプの例を見て、PureScript by Exampleを読んで、フォローしようとしています。私はこれを理解することができませんでした。
ご協力ありがとうございます。
haskell - Haskell と PureScript の違いは何ですか?
PureScript は Haskell とよく似ています。私には、PureScript プログラムの大部分、ほとんどが純粋な部分は、Haskell コンパイラーによってもコンパイル可能であるべきだと思われます。そうですか?
これは関連する質問につながります: Haskell サーバーのバックエンドと PureScript のフロントエンドの間でコードを共有することは可能でしょうか?例えば、データ構造、フォーム検証など?
purescript - 重複行エラー、ジェネリック行タイプを統一する方法
私は頭をひねりましたが、ここで型を統一する方法がわかりません。PureScript の以前のバージョンでは、すべて問題ありませんでした。しかし、0.6では行き詰まっています。
--
解析の詳細
より多くのタイプ情報
javascript - コンストラクター関数の Purescript FFI 型定義
Titan API の一部を PureScripts 外部関数インターフェイスでラップしようとしていますが、関数の型定義がどうあるべきかがわかりません。
functional-programming - purescript-lens 合成タイプエラー
ネストされたレコードのプロパティを更新するために purescript-lens を使用しようとしています。ただし、レンズを作成してプロパティを取得すると、次の型エラーが発生します。
私はレンズとピュアスクリプトに比較的慣れていないので、おそらく単純で明白なものです。
このエラーを生成する関連コードは次のとおりです (はい、purescript-thermite-todomvc に基づいています)。
更新しようとしているプロパティは st.item.description で、上記のエラーは「updateState (NewItem...」で始まる行を参照しています。不思議なことに、次の行でも同じエラーが報告されています。
型エラーを解決する方法についてのアイデアはありますか?
ありがとう
haskell - System.IO.UTF8 が見つかりません (PureScript のインストール)
Ubuntu 14.04 に PureScript をインストールしようとしています。私は Haskell-Platform の最新バージョンを持っていて、実行しcabal update
ました。モジュールが見つからないcabal install purescript
というエラーが表示されます。System.IO.UTF8
グーグルは、これがそのパッケージの一部でutf8-string
あり、そのパッケージがインストールされたときに公開されたモジュールの1つである必要があることを明らかにしています。
ただし、インストールすると、そのようなパッケージは利用できません。
上記の提案されたライブラリのうち 5 つだけがコンパイルされていることがわかります。
PureScriptソースは間違いなくSystem.IO.UTF8
.
しかしSystem.IO.UTF8
、長い間 (2 年以上) 変更されていないかなり古いパッケージのように見えるため、これが最近のバージョンでの大幅な変更である可能性は低いです。起動するには、PureScript は非常に新しいため、利用可能な場合、utf8-string の新しいバージョンに基づいていることは間違いありません。
問題は、PureScript がこの依存関係を単独でインストールできないのはなぜでしょうか ... のcabal
インストールがモジュールutf8-string
の公開に失敗するのかということです。System.IO.UTF8
records - PureScript のレコード
なぜこれが機能するのかよくわかりません:
これが言う間Cannot unify # * with *
。
(「{}」ではなく、Sel の右側の「()」に注意してください。)
ここで読みましたhttps://leanpub.com/purescript/read#leanpub-auto-objects-and-rows脱forall r. { firstName :: String, lastName :: String | r }
糖する
forall r. Object (firstName :: String, lastName :: String | r)
なぜ記録を拡張するために記録糖を使用できないのか、私はまだ少し混乱しています。
functional-programming - ピュアスクリプトを使い始める
例によって purescript に続いてpurescriptの学習を始めたばかりですが、Chapter2の最後でgrunt project templates を使用して立ち往生しています。指示に従いますが、grunt コマンドを実行すると、次のエラーが発生します。
コードを掘り下げて発見したのは、モジュールMathが次のようにインポートさ/output/Control.Monad.Eff.Random/index.js
れることです
インポートを削除して、Math をネイティブにし、メインを で実行するindex.js
とnode index.js
、すべて正常に動作します。これを純粋なスクリプトで修正するためにできることがあるかどうか、それとも私が間違っていることであるかどうか疑問に思っていました。