ghc

    5热度

    1回答

    我正在使用堆栈构建静态链接二进制文件,并尝试向其添加调试符号(以下内容:https://downloads.haskell.org/~ghc/master/users-guide/debug-info.html)。但是GDB报告:no debugging symbols found。 我缺少什么? 我已经加入到ghc-options在.cabal file:-g -rtsopts并向ld-opti

    0热度

    1回答

    我一直在玩Haskell类型类,我面临一个问题,我希望有人能帮我解决。考虑到我来自Swift背景并试图将一些面向协议的知识移植到Haskell代码中。 起初我宣布了一堆JSON解析器其中有相同的结构,只是不同的实现: data Candle = Candle { mts :: Integer, open :: Double, close :: Double }

    1热度

    1回答

    我有一个测试套件和一个基准测试套件,它使用GHC API将模块编译到Core,这样我就不必编写Core 'by hand'。 目前我主要使用stack,在这里我可以访问测试套件中的GHC_PACKAGE_PATH环境变量(stack test)来查找我可以提供GHC API的包数据库。请注意,这并不是我关心任何特定的数据库,我只是想从例如base可用,用GHC的兼容版本(例如GHC.Paths.g

    4热度

    1回答

    我有一个简单的例程,需要一个向量的产品Double。我试图并行化这些代码,但许多火花最终失败。这是也提供as a gist独立的基准: {-# LANGUAGE BangPatterns #-} {-# LANGUAGE MagicHash #-} {-# OPTIONS_GHC -O2 -Wall -threaded -fforce-recomp #-} import Criterio

    1热度

    1回答

    我试图在Prelude库中仅使用函数的两个数字列表之间实现一个点积。我写了下面的功能: dot :: Num a => [a] -> [a] -> a dot x y = sum $ zipWith (*) x y 我测试如下: main :: IO() main = do let n = 10^6 x = (replicate n 2.0) :: [Double]

    0热度

    3回答

    代码加载:进入交互 modPow :: Int -> Int -> Int -> Int modPow a k m = (a^2 `mod` m)^(k `div` 2) 代码: (13481503^2 `mod` 46340)^(11237126 `div` 2) 即a = 13481503 ,k = 11237126,m = 46340 前者返回一个完全不同的数字,当在ghci中调用

    0热度

    2回答

    Haskell完全是关于抽象。但是由于所有抽象(多态)数据的共同表示 - 堆中的指针,抽象花费我们额外的CPU周期和额外的内存使用。有一些方法可以使抽象代码更好地满足高性能需求。据我所知,一种方法是专业化 - 基本上额外的代码生成(手动或编译器),是正确的? 让我们假设下面所有的代码是严格 如果我们有一个功能sum(这有助于编译器进行更多的优化?): sum :: (Num a) => a ->

    4热度

    2回答

    对类型变量进行参数化很好,但不能缩放。作为可能发生的一个例子,http://oleg.fi/gists/posts/2017-04-26-indexed-poptics.html给出了一个包含9个类型变量的抽象。我一直在研究程序转换的框架,这些程序转换由程序设计语言进行了参数化,并且可以想象将来有几十或几百个参数。 所以这里的基本问题:我有一个数据类型T,它是参数化的N类型。如何在T上编写一个函数

    3热度

    1回答

    我已经找到一种方法来一个Nat转换成Integer使用Proxy和natVal,你可以在下面的代码中看到: {-# LANGUAGE DataKinds #-} {-# LANGUAGE ScopedTypeVariables #-} module Main where import Data.Proxy (Proxy) import Data.Monoid ((<>)) impor

    4热度

    2回答

    我在haskell-stack项目上使用GHC。我想解除错误字段的警告,直到出现编译错误。 我试图做到以下,但它不起作用。 ​​ 你能告诉如何解除缺少的字段警告到编译错误吗?