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

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

2
zygohistomorphic prepromorphismsの実際のアプリケーション
はい、これらは: {-#LANGUAGE TypeOperators, RankNTypes #-} import Control.Morphism.Zygo import Control.Morphism.Prepro import Control.Morphism.Histo import Control.Functor.Algebra import Control.Functor.Extras import Control.Functor.Fix import Control.Comonad.Cofree zygohistomorphic_prepromorphism :: Functor f => Algebra f b -> GAlgebra f (ZygoT (Cofree f) b) a -> (f :~> f) -> FixF f -> a zygohistomorphic_prepromorphism f = g_prepro (distZygoT (liftAlgebra …

7
foldrとfoldl(またはfoldl ')の関係
まず、私が読んでいるReal World Haskellは、を使用foldlせず、代わりにを使用するように言っていますfoldl'。だから私はそれを信頼しています。 しかし、私はfoldrvs をいつ使うべきか迷っていますfoldl'。私の目の前では、それらがどのように機能するかについての構造がわかりますが、私は愚かすぎて、「どちらが良いか」を理解できません。どちらも同じ答えを返すので、どちらを使用しても問題にはならないように思えます(そうではありませんか?)。実際、このコンストラクトに関する私の以前の経験は、Ruby injectとClojureの経験でありreduce、これらには「左」バージョンと「右」バージョンがないようです。(サイド質問:彼らはどのバージョンを使用していますか?) 私のような賢い挑戦的なソートを助けることができるどんな洞察も大いに感謝されます!

6
GHCはなぜそれほど大きい/大きいのですか?
簡単な答えはありますか:GHCはなぜそれほど大きいのですか? OCaml:2 MB Python:15 MB SBCL:9MB OpenJRE-26MB GHC:113 MB 「なぜHaskellが適切なツールであるならば、なぜ私はサイズを気にする必要がないのか」という伝道には興味がありません。これは技術的な質問です。
147 haskell  ghc 

1
Esqueletoでリスト型を処理する
次のように定義されたデータ型があります。 data ComitteeView = CommitteeView { committeeId :: CommitteeId , committeeMembers :: [Person] } data CommitteesView = CommitteesView { committeeView :: [CommitteeView] } さて、現状では、次のように定義された永続モデルがあります。 Person name Text Committee name Text CommitteePerson personId PersonId committeeId CommitteeId Esqueletoを使用すると、CommitteetViewにデータを入力するクエリを簡単に作成できます。それはこのようなものになるでしょう: getCommitteeView cid = CommitteeView <$> runDB $ select $ from (person `InnerJoin` pxc `InnerJoin` …
144 sql  list  haskell  esqueleto 

2
GHC-modは型にフルネームを使用する必要がありますか?
ghc-modタイプ/構文チェックなどを行うためにvimプラグインを使用しようとしています。ただし、ghc-modエラーメッセージでは常にタイプの完全パスを使用していることがわかりました。次に例を示します。 test.hs|71 col 13 error| Couldn't match type ‘Data.Text.Internal.Text’ || with ‘[GHC.Types.Char]’ || Expected type: containers-0.5.6.2:Data.Map.Base.Map || [GHC.Types.Char] || ([(integer-gmp-1.0.0.0:GHC.Integer.Type.Integer, || integer-gmp-1.0.0.0:GHC.Integer.Type.Integer)], || containers-0.5.6.2:Data.Set.Base.Set || integer-gmp-1.0.0.0:GHC.Integer.Type.Integer) || Actual type: containers-0.5.6.2:Data.Map.Base.Map || Data.Text.Internal.Text || ([(integer-gmp-1.0.0.0:GHC.Integer.Type.Integer, || integer-gmp-1.0.0.0:GHC.Integer.Type.Integer)], || containers-0.5.6.2:Data.Set.Base.Set || integer-gmp-1.0.0.0:GHC.Integer.Type.Integer) || In the second argument of ‘containers-0.5.6.2:Data.Map.Base.map’, namely || ‘zippedMap’ …
143 haskell  ghc  ghc-mod 

1
HsOpenSSL APIの適切な使用によるTLSサーバーの実装
同時コンテキストでOpenSSL.Session API を適切に使用する方法を理解しようとしています たとえば、私がを実装したいと仮定するとstunnel-style ssl-wrapper、素朴なものを実装する次の基本的なスケルトン構造が期待されますfull-duplex tcp-port-forwarder: runProxy :: PortID -> AddrInfo -> IO () runProxy localPort@(PortNumber lpn) serverAddrInfo = do listener <- listenOn localPort forever $ do (sClient, clientAddr) <- accept listener let finalize sServer = do sClose sServer sClose sClient forkIO $ do tidToServer <- myThreadId bracket (connectToServer serverAddrInfo) …
141 haskell  openssl  ssl 


1
Language.Haskell.Interpreterで実行可能ファイルを出荷する方法は?
hint私のプログラムで使用するプラグインをHaskellで作成できるように、Haskellインタープリターを埋め込むことを望んでいました。実行可能ファイル用にHaskellプラットフォーム全体を出荷する必要はありません。 通常、Haskell実行可能ファイルはかなり自己完結型です。たとえば、消去しPATHても問題は発生しません。 $ PATH=. Hello Hello world しかし、runInterpreter私が消去した場合、爆弾を使用した簡単なテストプログラムPATH: $ PATH=. TryHint GhcException "panic! (the 'impossible' happened)\n (GHC version 7.8.3 for x86_64-apple-darwin):\n\tDynamic linker not initialised\n\nPlease report this as a GHC bug: http://www.haskell.org/ghc/reportabug\n" 環境で使用するには、どのライブラリまたは実行可能ファイルを使用できる必要がありますか? otool 多くのガイダンスを提供しません: otool -L TryHint TryHint: /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0) /usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current …

8
Haskellでのメモ化?
Haskellで次の関数を効率的に解決する方法に関する任意のポインタ(多数の場合) (n > 108) f(n) = max(n, f(n/2) + f(n/3) + f(n/4)) Haskellでフィボナッチ数を解決するためのメモ化の例を見てきました。これには、必要なnまでのすべてのフィボナッチ数を(遅延的に)計算することが含まれます。しかし、この場合、与えられたnに対して、必要な中間結果はごくわずかです。 ありがとう

2
なぜλ-calculusの最適なエバリュエーターは数式なしで大きなモジュラ指数を計算できるのですか?
教会番号は、関数としての自然数のエンコードです。 (\ f x → (f x)) -- church number 1 (\ f x → (f (f (f x)))) -- church number 3 (\ f x → (f (f (f (f x))))) -- church number 4 きちんと、2つの教会の数を適用するだけで指数化できます。つまり、4対2を適用すると、教会番号16、またはを取得します2^4。明らかに、それは全く実用的ではありません。教会の数は線形のメモリ量を必要とし、本当に非常に遅いです。10^10GHCIがすぐに正しく答えるようなものを計算すると、時間がかかり、とにかくコンピュータのメモリを合わせることができませんでした。 最近、最適なλエバリュエーターを使って実験しています。私のテストでは、最適なλ計算機に誤って次のように入力しました。 10 ^ 10 % 13 べき乗ではなく、乗法であると考えられていました。指を動かして、絶え間なく実行されているプログラムを絶望的に中止する前に、それは私の要求に答えました: 3 { iterations: 11523, applications: 5748, …

5
HaskellとF#の主な違いは何ですか?[閉まっている]
クローズ。この質問はもっと焦点を合わせる必要があります。現在、回答を受け付けていません。 6年前に閉鎖されました。 ロックされています。この質問とその回答は、質問がトピックから外れているが歴史的に重要であるため、ロックされています。現在、新しい回答ややり取りは受け付けていません。 F#とHaskellの比較をインターネットで検索しましたが、本当に決定的なものは見つかりませんでした。主な違いは何ですか?なぜ私はどちらかを選択したいのですか?

5
GHCiの複数行コマンド
ghciで複数行のコマンドを入力する際に​​問題があります。 次の2行のコードはファイルから機能します。 addTwo :: Int -> Int -> Int addTwo x y = x + y しかし、ghciと入力すると、エラーが発生します。 <interactive>:1:1: error: Variable not in scope: addTwo :: Int -> Int -> Int 私もコードを:{ ... :}に入れてみましたが、これは行を1行に追加するだけなので、この例では機能しません。 WinGHCiバージョン2011.2.0.1を使用しています
134 haskell  ghci 


5
Haskellプログラムでのガベージコレクションの一時停止時間の削減
「メッセージ」を受信して​​転送するプログラムを開発していますが、メッセージの一時的な履歴を保持しているので、要求に応じてメッセージの履歴を伝えることができます。メッセージは数値で識別され、通常は約1キロバイトのサイズであり、数十万のメッセージを保持する必要があります。 このプログラムを遅延に対して最適化したいと思います。メッセージの送信と受信の間の時間は10ミリ秒未満でなければなりません。 プログラムはHaskellで書かれており、GHCでコンパイルされています。ただし、ガベージコレクションの一時停止は、待機時間の要件に対して長すぎることがわかりました。実際のプログラムでは100ミリ秒を超えています。 次のプログラムは、アプリケーションの簡易バージョンです。Data.Map.Strictメッセージの保存にを使用します。メッセージはでByteString識別されますInt。1,000,000メッセージは昇順で挿入され、最も古いメッセージは継続的に削除されて履歴が最大200,000メッセージに保たれます。 module Main (main) where import qualified Control.Exception as Exception import qualified Control.Monad as Monad import qualified Data.ByteString as ByteString import qualified Data.Map.Strict as Map data Msg = Msg !Int !ByteString.ByteString type Chan = Map.Map Int ByteString.ByteString message :: Int -> Msg message n = Msg n …

4
Haskellの `mod`と` rem`の違い
違いを正確に何であるmodとremHaskellのでは? どちらも同じ結果になるようです *Main> mod 2 3 2 *Main> rem 2 3 2 *Main> mod 10 5 0 *Main> rem 10 5 0 *Main> mod 1 0 *** Exception: divide by zero *Main> rem 1 0 *** Exception: divide by zero *Main> mod 1 (-1) 0 *Main> rem 1 (-1) 0
130 haskell 

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