ghc

    7熱度

    2回答

    GHC在將總和類型傳遞給函數時是否解包過?例如,讓我們說,我們有以下類型: data Foo = Foo1 {-# UNPACK #-} !Int {-# UNPACK #-} !Word | Foo2 {-# UNPACK #-} !Int | Foo3 {-# UNPACK #-} !Word 然後我定義一個函數,在其Foo參數嚴格: consumeFoo :

    2熱度

    1回答

    我有一個項目,它是用堆棧構建的,需要GHC 8。考慮到它需要GHC 8,可以在我的項目中使用Liquid Haskell嗎?如果是這樣,我應該如何去安裝和執行Liquid Haskell? 謝謝!

    0熱度

    1回答

    我想編譯一個哈斯克爾源包作爲動態庫與OCaml代碼一起使用。我試着在源文件的.cabal文件上使用--enable-shared選項,cabal install,我得到了一個Perhaps you haven't installed the "dyn" libraries for package 'zeromq4-haskell-0.6.5'錯誤。經過一番Google搜索之後,我意識到依賴項也必須

    10熱度

    1回答

    我有以下代碼: {-# LANGUAGE DefaultSignatures#-} import Control.Monad.Trans.Class import Control.Monad.Trans.Maybe class Monad m => MonadMaybe m where liftMaybe :: Maybe a -> m a default liftM

    7熱度

    1回答

    我剛剛寫了一個在井字遊動的功能。我想推動模式匹配。所以我寫了9 makeAMove條款。每個都有一個Tic-Tac-Toe板,由空符號指定不同的空間。它看起來像這樣。 makeAMove [[E, m12, m13], [m21, m22, m23], [m31, m32, m33]] X 1 1 = ... 本條款將X放在董事會的左上角。 X,O和E被定義爲標記。

    4熱度

    1回答

    我有一個Haskell庫有幾個可執行文件(測試,基準等),共約六個。當我在庫中進行一些重構時,通常需要對每個可執行文件進行一些小改動。 在我目前的工作流程中,我分別編譯每個可執行文件(比如GHCi)並修復每個可執行文件。這很乏味,因爲我必須輸入每個可執行文件的路徑,而且必須重新加載所有(非常大)的庫,即使使用GHCi也需要一些時間。 我首先想到解決這個問題是創建一個導入可執行「Main」模塊的虛擬

    1熱度

    2回答

    只是一個隨機琢磨看着我無數length調用,它發生,我認爲肯定是編譯器可以告訴任何列表感謝的長度不變性和引用透明(甚至當新的列表是concat從現有已知的名單/ -ed代碼路徑)。那麼它可能會取代所有length l「調用」與實際 int在常數低級代碼生成過程中的某個階段,對吧? 想知道它是否的確如此,或者我在初學者的直覺中錯過了某些關於純函數式語言/編譯器的東西。

    4熱度

    2回答

    我對Haskell比較新,我想了解HList的定義之一。 data instance HList '[] = HNil newtype instance HList (x ': xs) = HCons1 (x, HList xs) pattern HCons x xs = HCons1 (x, xs) 我有幾個具體的問題: 什麼是'[]和(x ': xs)語法我看到?它幾乎看起來像是在可變

    0熱度

    1回答

    Haskell新手提出的一個關於使並行性有效工作的問題。 Advent of Code Day 14挑戰包括創建一個整數序列的MD5哈希值,查找讓哈希值滿足某些屬性的前n個整數。我主要通過創建哈希來過濾它們來做到這一點。 我認爲這將是一個很好的事情,嘗試與並行,使用幾個核心生成哈希。 哈希創建的非平行版本是這樣的: md5sequenceS :: [String] md5sequenceS =

    0熱度

    1回答

    以前我用ghc版本< 8在Linux上,當我在一個文件中的腳本,說file.hs,像 let x = "hello" putStrLn x double x=2*x print $ double 2 double 3 則是可能的運行和運行腳本(而不是模塊)通過做 ghc -e ':script file.hs' 現在我使用Windows ghc 8.0.1獲得在終端輸出,這不工作了