タグ付けされた質問 「haskell」

Haskellは、強力な静的型付け、遅延評価、広範な並列処理と同時実行のサポート、独自の抽象化機能を備えた関数型プログラミング言語です。

5
機能的なデザインパターン[終了]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 4年前休業。 この質問を改善する モナド、アプリケーション、矢印など、機能的なイディオムはたくさんあります。それらはさまざまな記事に記載されていますが、残念ながら、それらが1か所にまとめられている本や記事はありません(Typeclassopediaがありますが、たくさんあります十分にカバーされていない領域の)。誰かが1か所で十分にカバーし、FPの中間スキルを持つプログラマーがアクセスできる記事/本を推薦できますか?


4
GHC Haskellのメモ化はいつ自動化されますか?
m2が以下に含まれていないのにm1が明らかにメモ化されている理由がわかりません。 m1 = ((filter odd [1..]) !!) m2 n = ((filter odd [1..]) !! n) m1 10000000は最初の呼び出しで約1.5秒かかり、その後の呼び出しではその数分の1(おそらくリストをキャッシュする)ですが、m2 10000000では常に同じ時間がかかります(呼び出しごとにリストを再構築します)。何が起こっているのでしょうか?GHCが関数をメモするかどうか、いつメモするかについての経験則はありますか?ありがとう。
106 haskell  ghc  memoization 

2
HaskellのComonadタイプクラスとは何ですか?
HaskellのComonadタイプクラスとは何ですか?ComonadのようにcomonadパッケージでControl.Comonad(Comonadの型クラスを提供し、他のパッケージの説明にも歓迎されています)。私は漠然とコモナドについて聞いたことがありますが、私がそれについて本当に知っているのは、それがextract :: w a -> aモナドの一種の類似物を提供することだけですreturn :: a -> m a。 「実際の」コードでのComonadの「実際の」使用に注意することのボーナスポイント。

2
不規則な穴タイプの解決
私は最近、タイプホールとプルーフのパターンマッチングを組み合わせることで、HaskellでAgdaのような素晴らしいエクスペリエンスが提供されることを発見しました。例えば: {-# LANGUAGE DataKinds, PolyKinds, TypeFamilies, UndecidableInstances, GADTs, TypeOperators #-} data (==) :: k -> k -> * where Refl :: x == x sym :: a == b -> b == a sym Refl = Refl data Nat = Zero | Succ Nat data SNat :: Nat -> * …

8
Haskell、Lisp、および冗長性[終了]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 HaskellといくつかのLispのフレーバーの両方で経験した人にとって、HaskellとLispのどちらでコードを書くのが(恐ろしい用語を使用するのが)どれほど「楽しい」かが気になります。 背景:今はHaskellを学んでいます。以前にSchemeとCLを使用していた(そしてClojureに少し進出した)。伝統的に、あなたは私が動的言語のファンをそれらが提供する簡潔さと迅速さのためにファンであると考えることができました。Lispマクロにすぐに夢中になりました。冗長性とボイラープレートを回避するためのもう1つの方法になったからです。 Haskellは信じられないほど興味深いものだと思います。これは、存在することを知らなかったコーディング方法を紹介するものです。確かに、部分的な関数を簡単に記述できるなど、俊敏性の実現に役立つように見えるいくつかの側面があります。しかし、私はLispマクロ(私はそれらを失うと思います。真実はまだそれらについて学んでいないかもしれないと言われています)と静的型付けシステムを失うことについて少し心配しています。 両方の世界でまともな量のコーディングを行った人は、経験がどのように異なるのか、好みが状況に応じてコメントすることを気にかけますか?

4
Haskellプログラムのパフォーマンスを分析するためのツール
Haskellを学ぶためにいくつかのプロジェクトオイラー問題を解決している間に(現在、私は完全に初心者です)、問題12に出会いました。私はこの(素朴な)解決策を書きました: --Get Number of Divisors of n numDivs :: Integer -> Integer numDivs n = toInteger $ length [ x | x<-[2.. ((n `quot` 2)+1)], n `rem` x == 0] + 2 --Generate a List of Triangular Values triaList :: [Integer] triaList = [foldr (+) 0 [1..n] | n <- …

1
Haskell printfはどのように機能しますか?
Haskellの型安全性は、依存型付けされた言語だけに勝るものはありません。しかし、Text.Printfには、いくぶん型崩れしているように見える深い魔法があります。 > printf "%d\n" 3 3 > printf "%s %f %d" "foo" 3.3 3 foo 3.3 3 これの背後にある深い魔法は何ですか?Text.Printf.printf関数はどのようにこのような可変引数を取ることができますか? Haskellで可変引数を可能にするために使用される一般的なテクニックは何ですか?それはどのように機能しますか? (補足:この手法を使用すると、タイプセーフの一部が明らかに失われます。) > :t printf "%d\n" "foo" printf "%d\n" "foo" :: (PrintfType ([Char] -> t)) => t

3
Haskellでの派生はどのように機能しますか?
Haskellの代数的データ型(ADT)は、それらから派生することにより、いくつかのタイプクラス(Show、などEq)のインスタンスになることができます。 data Maybe a = Nothing | Just a deriving (Eq, Ord) 私の質問は、これderivingがどのように機能するか、つまりHaskellが派生ADTの派生型クラスの関数を実装する方法をどのように知るかです。 また、なぜderiving特定の型クラスのみに制限されているのですか?派生可能な独自の型クラスを作成できないのはなぜですか?

3
ハスケルの警備員vs. if-then-else vs.事件
リストのn番目の要素を見つける3つの関数があります。 nthElement :: [a] -> Int -> Maybe a nthElement [] a = Nothing nthElement (x:xs) a | a <= 0 = Nothing | a == 1 = Just x | a > 1 = nthElement xs (a-1) nthElementIf :: [a] -> Int -> Maybe a nthElementIf [] a = …

3
カバルとスタックの違いは何ですか?
昨日、Stackと呼ばれる新しいHaskellツールについて学びました。最初の赤面では、それはカバルとほとんど同じ仕事をしているように見えます。では、それらの違いは何ですか?StackはCabalの代替品ですか?どの場合、Cabalの代わりにStackを使用する必要がありますか?StackalがCabalでできないことは何ですか?

6
現実世界で関数型プログラミングを使用するにはどうすればよいですか?[閉まっている]
休業。この質問はもっと焦点を合わせる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 5年前に閉鎖。 この質問を改善する 関数型言語は、状態を排除することでバグを回避するだけでなく、スレッド数を気にすることなく簡単に自動的に並列化できるため、優れています。 しかし、Win32開発者として、アプリケーションの一部のDLLにHaskellを使用できますか?もしそうした場合、自動的に利用される本当の利点はありますか?もしそうなら、私にこの利点を与えるもの、コンパイラ? F#は、複数のコアとCPUにまたがって作成した関数を自動的に並列化しますか?タスクマネージャーのスレッド数が増えるのを見たことはありますか? 基本的に私の質問は、どのようにHaskellを実用的な方法で使い始めることができるか、そして私が実際に使用するといくつかの利点が得られるかどうかです。



4
Haskellテストワークフロー
私は新しいHaskellプロジェクトを開始したばかりで、最初から優れたテストワークフローをセットアップしたいと思っていました。Haskellには優れた独自のテストツールが数多くあり、それらを統合するさまざまな方法があるようです。 私は調べました: HUnit クイックチェック ベンチプレス HPC 複雑 どのドメインでも非常にうまく機能しているように見えますが、私はテストへの包括的なアプローチを探しており、他の人に何がうまく機能しているか疑問に思っていました。
101 testing  haskell 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.