在 Haskell 中的 case 构造中使用匹配值
我正在记录的数据构造函数上进行模式匹配,并且有以下代码块: colorFor shape = case material shape of ColorMaterial -> material shape -- etc. …
Parsec-Parser 工作正常,但是可以做得更好吗?
我尝试这样做: 解析表单中的文本: 一些文本 #{0,0,0} 一些文本 #{0,0,0}#{0,0,0} 更多文本 #{0,0,0} 放入某些数据结构的列表中: [“某些文本”内,…
为什么 Data.String.IsString 类型类只定义一种转换?
为什么 Haskell 基础包只定义 IsString 类来进行从 String 到 'like-string' 值的转换,而不定义从 'like- string' 值转换为String? 该类应定义为: …
Haskell 程序中将一项字符串列表转换为字符串
我在字符串列表上使用 take 1 ,因此它从列表中获取第一个字符串元素并将其放入新列表中... I.E: take 1 ["hello", "this", "is", "an", "example"] …
为什么GHC认为这个类型变量不是单射的?
我有这段代码: {-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies, KindSignatures, GADTs, FlexibleInstances, FlexibleContexts #-} cl…
从 randomIO 列表中打印 x randomIO 值
我已经得到了这段代码,我应该解释它的非终止性并提出可能的修复方案。 randomW = do randomvalues <- sequence (repeat (randomIO :: IO Float)) pri…
安装 yesod 时出现问题
我想安装 yesod 来学习一些关于网络的知识,并在业余时间玩一下 Haskell,但是当我这样做时: > cabal install yesod Resolving dependencies... caba…
GHC 7.0.3 否认将 2^1000 显示为标准化双精度输出“无穷大”
我有以下输出 - 我很惊讶。有什么帮助为什么“我的双打”看起来这么低吗? Prelude GHC.Float> floatRange (0.5e1000::Double) (-1021,1024) Prelude …
无法从 (MonadRandom r) 推导出 (Functor r)
下面的简单代码 import Control.Monad import Control.Monad.Random psum :: (MonadRandom r) => Int -> r Double -> r Double psum n x = fmap sum $…
如何解决此类型错误?
我无法将以下程序加载到 GHCi: minList :: Ord a => [a] -> a minList (x:[]) = x minList (x:y:xs) = minList( min x y : xs) bubList :: Ord a => …
如何动态生成 selectFields
我正在尝试通过使用 flip 映射 mreq selectField 来动态生成 selectFields,我想知道这是否是最好的方法。 这是我的尝试。在研究了 Flip 的类型之后,…