問題タブ [ghc]

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 投票する
2 に答える
360 参照

haskell - なぜGHCiは[[]]の種類を解決できないのですか?

Haskellが[[]](リストのリスト)の種類を解決できないのはなぜですか?
Intのような型を指定して、種類*の[[Int]]を取得できるので、単純に*->*ではないのはなぜですか。

0 投票する
7 に答える
9143 参照

haskell - すべてのGHC拡張機能のリストはどこにありますか

使いたかった{-# LANGUAGE OverloadedStrings #-}のですが、その呼び方を忘れてしまいました。この種のものはフーグル可能ではありません、そしてまたグーグル*を使って見つけるのに少し時間がかかります。

LANGUAGEプラグマにあるように名前が付けられたGHC拡張機能のリストはどこかにありますか?

*私のグーグル検索の旅:

0 投票する
2 に答える
644 参照

windows - ghc で GUI 実行可能ファイルをコンパイルするにはどうすればよいですか?

私が書いた小さな Haskell プログラムを Mac から Windows に移植しました。これは GUI アプリケーション (wxHaskell、ghc 6.12.1 でコンパイル) であるため、コマンド プロンプト ウィンドウを開く必要はありません。とにかくそうするので、私の質問:最初にプロンプ​​トウィンドウを開かずにプログラムを開始するにはどうすればよいですか? これにはghcスイッチがありますか?

0 投票する
2 に答える
12069 参照

haskell - Curious about the HashTable performance issues

I read that hash tables in Haskell had performance issues (on the Haskell-Cafe in 2006 and Flying Frog Consultancy's blog in 2009), and since I like Haskell it worried me.

That was a year ago, what is the status now (June 2010)? Has the "hash table problem" been fixed in GHC?

0 投票する
8 に答える
50876 参照

haskell - Haskell/GHC の `forall` キーワードは何をしますか?

forall次のように、いわゆる「存在型」でキーワードがどのように使用されるかを理解し始めています。

ただし、これは がどのように使用されるかのサブセットにすぎず、次のforallような用途での使用に頭を悩ませることはできません。

または、これらが異なる理由を説明します。

それとも全部RankNTypes...

私は、アカデミックな環境で普通に使われている種類の言語よりも、明確で専門用語のない英語を好む傾向があります。私がこれについて読もうとしている説明のほとんど (検索エンジンで見つけることができるもの) には、次のような問題があります。

  1. それらは不完全です。runST彼らは、このキーワードの使用の一部 (「存在型」など) を説明しており、それをまったく異なる方法で使用するコード (や上記など)fooを読むまで、私は幸せに感じます。bar
  2. それらは、離散数学、圏論、または抽象代数の今週人気のある分野の最新のものを私が読んだという仮定がぎっしりと詰め込まれています。(「実装の詳細については論文を参照してください」という言葉を二度と読まなければ、早すぎます。)
  3. それらは、単純な概念でさえ、曲がりくねってねじれ、断片化された文法と意味論に頻繁に変わる方法で書かれています。

そう...

実際の質問に進みます。forall私が専門用語にどっぷりと浸かっている数学者であると想定しない、明確で平易な英語でキーワードを完全に説明できる人はいますか?


追加するために編集:

以下のより質の高いものから2つの際立った回答がありましたが、残念ながら私は1つだけを最高のものとして選ぶことができます. ノーマンの答えは詳細で有用であり、理論的基盤のforallいくつかを示すと同時に、それの実際的な意味のいくつかを示す方法で物事を説明しました. ヤルチュの答え誰も言及していない領域 (スコープ型変数) をカバーし、すべての概念をコードと GHCi セッションで説明しました。両方を最良のものとして選択することが可能であれば、私はそうします. 残念ながらできません。両方の回答を詳しく調べた後、例示的なコードと添付の説明のために、yairchu のほうが Norman のものよりわずかに優れていると判断しました。ただし、これは少し不公平です。実際には、これを理解するために両方の答えが必要だったのでforall、型シグネチャで見たときにかすかな恐怖感を残さないほどです。

0 投票する
6 に答える
10326 参照

haskell - Haskell の孤立したインスタンス

このオプションを指定して Haskell アプリケーションをコンパイルすると-Wall、GHC は孤立したインスタンスについて不平を言います。たとえば、次のようになります。

型クラスは私のものではなく、 HStringTemplateToSElemによって定義されています。

これで、これを修正する方法 (インスタンス宣言を Result が宣言されているモジュールに移動する) がわかり、GHC が孤立したインスタンスを避けることを好む理由もわかりましたが、それでも私の方法の方が優れていると思います。コンパイラが不便かどうかは気にしません - 私ではなく。

インスタンスを Publisher モジュールで宣言する理由ToSElemは、他のモジュールではなく HStringTemplate に依存するのは Publisher モジュールであるためです。関心の分離を維持し、すべてのモジュールが HStringTemplate に依存することを回避しようとしています。

Haskell の型クラスの利点の 1 つは、たとえば Java のインターフェイスと比較した場合、閉じているのではなく開いているため、インスタンスをデータ型と同じ場所で宣言する必要がないことです。GHC のアドバイスは、これを無視するようです。

したがって、私が探しているのは、私の考えが健全であり、この警告を無視/抑制することが正当化されるという検証、または私のやり方に対するより説得力のある議論のいずれかです.

0 投票する
2 に答える
313 参照

compiler-construction - GHC拡張機能の分類

GHC の拡張機能は、基本的に 2 つの異なるカテゴリに分類できるかどうか疑問に思っていました

  • 「構文糖」または利便性を提供するもの
  • 新しいもの、たとえば新しいパラダイムを導入するもの。

既存の拡張機能を上記のカテゴリに分類できるとしたら、どの拡張機能がどのカテゴリに適合するでしょうか?

0 投票する
3 に答える
734 参照

haskell - eeePc 701 / Ubuntu Netbook Remix 1.6(Lucid)でcabal-installをビルドするにはどうすればよいですか?

プログラミングの質問ではありませんが、初めてこのようなものを見ました。
UNR 1.6(Ubuntu 10.04に基づく)は、6.12.1バージョンのGHCをインストールします。
したがって、cabal-install-0.8.2をビルドするには
、parsec、mtl、network、およびzlibのlibghc6-パッケージをインストールする必要があります。
次に、「sh ./bootstrap.sh」を起動した後、次のようになります。

インストールされているパッケージのghc-6.12.1を確認しています...
parsecはすでにインストールされており、バージョンは問題ありません。
ネットワークはすでにインストールされており、バージョンは問題ありません。
Cabalはすでにインストールされており、バージョンは問題ありません。
mtlはすでにインストールされており、バージョンは問題ありません。
HTTPはすでにインストールされており、バージョンは問題ありません。
zlibはすでにインストールされており、バージョンは問題ありません。
[1/1]メインのコンパイル(Setup.hs、Setup.o)
セットアップのリンク...
cabal-install-0.8.2の構成...cabal-install-0.8.2
の実行可能ファイルの前処理...
cabal-install-の構築0.8.2..。
[1/40] Distribution.Client.BuildReports.Typesのコンパイル(Distribution / Client / BuildReports / Types.hs、dist / build / cabal / cabal-tmp / Distribution / Client / BuildReports / Types.o)
[2/40]コンパイルDistribution.Client.Utils(Distribution / Client / Utils.hs、dist / build / cabal / cabal-tmp / Distribution / Client / Utils.o)

...未使用のaddPackageExcludeConstraintと応答に関する2つの警告..。

[39/40] Distribution.Client.Install(Distribution / Client / Install.hs、dist / build / cabal / cabal-tmp / Distribution / Client / Install.o)
のコンパイル[40/40] Main(Main.hs、 dist / build / cabal / cabal-tmp / Main.o)
dist / build / cabal /cabalをリンクしています...
collect2:ldはシグナル9で終了しました[Processusarrêté]

cabal-installブートストラップ中のエラー:
cabal-installパッケージのビルドに失敗しました

リンクとcollect2の間(1分程度)、ハードドライブのLEDは、
多くのファイルが書き込まれたり読み取られたりするようにきらめきます。

関連性があるかどうかはわかりませんが、依存関係のバージョンは次のとおりです。Cabal-
1.8.0.2
HTTP-4000.0.6
mtl-1.1.0.2
network-2.2.1.7
parsec-2.1.0.1
zlib-0.5.2.0

0 投票する
4 に答える
2535 参照

macos - GHC の Macports パッケージのコンパイルに時間がかかるのはなぜですか?

なぜ?ブートストラップ プロセスと実際のコンパイラ プロセスのコンパイルがありますが、どの部分が最も時間を消費しますか?

0 投票する
2 に答える
8996 参照

performance - ガベージ コレクションのための GHC の RTS オプション

テキストファイルを処理してMap(数百万の要素を含む)を構築するHaskellプログラムがあります。全体で 2 ~ 3 分実行できます。-H オプションと -A オプションを微調整すると、実行時間に大きな違いが生じることがわかりました。

RTS のこの機能に関するドキュメントがありますが、GC 理論のアルゴリズムと用語を知らないので、私には読みにくいです。Haskell/GHC に固有の、より技術的な説明を探しています。これらのオプションに適切な値を選択することについての参照はありますか?

編集:それがコードです。指定された単語のリストに対してトライを構築します。