我是一个绝对的初学者.使用emacs通过LYAH.
我目前的设置:
在这里描述的第2点找到难以遵循的指令(带来haskell库).
还需要指导才能启用Scion IDE.
问题:
.hs代码
data Maybe a = Nothing | Just a
Run Code Online (Sandbox Code Playgroud)
在运行代码时,我收到以下错误:
请忽略拼写错误,原贴:
*Main> just "Haha"
Run Code Online (Sandbox Code Playgroud)
互动>:339:1:不在范围内:'只是'
这是真正的错误(在Tikhon Jelvis的评论之后添加):
*Main> Just "Haha"
interactive>:341:1:
Ambiguous occurrence `Just'
It could refer to either `Main.Just',
defined at /home/optimight/baby.hs:89:26
or `Prelude.Just',
imported from `Prelude' at /home/optimight/baby.hs:1:1
(and originally defined in `Data.Maybe')
Run Code Online (Sandbox Code Playgroud) 我正在使用GHC 7.4.1并试图分析一段代码.不幸的是,分析器的输出为main功能分配了一个大的成本中心,而不是将其分解为每个功能的多个成本中心.
这是我正在遵循的用于分析代码的过程.我很欣赏指出我做错了什么.
首先,重新安装库,启用优化和分析:
cabal install -p -O2
Run Code Online (Sandbox Code Playgroud)
接下来,我重新编译我想要分析的代码:
ghc -rtsopts -prof -fprof-auto -fforce-recomp --make -O2 "Main.hs"
Run Code Online (Sandbox Code Playgroud)
最后,我使用一些分析选项运行它:
./Main +RTS -K100M -s -p -hy
Run Code Online (Sandbox Code Playgroud)
这就是结果:
COST CENTRE MODULE %time %alloc
main Main 100.0 100.0
Run Code Online (Sandbox Code Playgroud)
有什么明显我做错了吗?
当我跑步时cabal install hoogle,我得到以下内容:
setup: The program happy version >=1.17 is required but it could not be found
cabal: Error: some packages failed to install
haskell-src-exts-1.13.3 failed during the configure step the exeption is ExitFailure 1
$ghc -V
The Glorious Glasgow Haskell Compilation System, version 7.4.1
Run Code Online (Sandbox Code Playgroud)
如何解决这样的问题?
我不知道解决简单(可能)问题的最佳方法(与hackage相关).
我向它寻求帮助(http://stackoverflow.com/questions/12841599/haskell-hackage-ghc-and-productivity-what-to-do),但我知道不能解释清楚.
今天,我有这个亲属的问题.
具体问题不相关,但它是:
`Write a function that, given a string, remove diacritics.`
Run Code Online (Sandbox Code Playgroud)
例:
`simpleWord "Cigüeñal" <-> "Ciguenal"
Run Code Online (Sandbox Code Playgroud)
正确的方法(我认为)是使用标准的Unicode规范化.在某些语言/框架(.Net,PHP,Python,...)中存在一些相关的功能.
在Haskell,感谢hackage社区也存在:
`Text.Unicode.Normalization.normalize`
Run Code Online (Sandbox Code Playgroud)
但是,我无法安装(例如)ghc-7.4但是compact-string(取决于)失败.
对于compact-stringexists(compact-string-fix)的修复然后:我不能使用cabal来安装(直接)?,我应该下载并修补它吗?,我应该寻找另一种功能吗?
我解释了一个具体的真实案例(简单或复杂,不关心),问题(我请求帮助)是如何,一个新手haskeller,知道选择正确的库,ghc正确(平衡)版本的最佳方法,没撞墙.
我真的迷失了.
真的,非常感谢你的任何建议.
最好的祝福.
replicate 3 "hi"
Run Code Online (Sandbox Code Playgroud)
产生
["hi", "hi", "hi"]
Run Code Online (Sandbox Code Playgroud)
但
liftM (replicate 3) "hi"
Run Code Online (Sandbox Code Playgroud)
产生
["hhh", "iii"]
Run Code Online (Sandbox Code Playgroud)
如何liftM操作(准确地)?
在haskell functonal依赖 维基:
鉴于这些定义:
data Vector = Vector Int Int deriving (Eq, Show)
data Matrix = Matrix Vector Vector deriving (Eq, Show)
instance Num Vector where
Vector a1 b1 + Vector a2 b2 = Vector (a1+a2) (b1+b2)
Vector a1 b1 - Vector a2 b2 = Vector (a1-a2) (b1-b2)
{- ... and so on ... -}
instance Num Matrix where
Matrix a1 b1 + Matrix a2 b2 = Matrix (a1+a2) (b1+b2)
Matrix a1 b1 - Matrix a2 b2 = Matrix …Run Code Online (Sandbox Code Playgroud) 标题是一个轻微的笑话.
我今天刚刚发现,在ghc没有抱怨的情况下接受任何优化级别.我知道这-O2应该是最大的优化级别,并且-O3 这里有一个提议,但我只是好奇当你错误地指定更高的优化级别时会发生什么.是ghc默认-O2还是不优化?
在GHC6上使用cabal进行构建时,它会发出警告:
Warning: Falling back to topdown solver for GHC < 7.
Run Code Online (Sandbox Code Playgroud)
什么是自上而下的解决方案,警告的含义是什么?它对我有什么影响?
我发誓我在最近的一系列GHC发行说明中看到了一个新功能 - 但现在我找不到它的参考.我是妄想,还是这个功能确实存在?
这与加载不完整的模块有关.尽我所知,它允许您关闭由于未定义的变量导致的编译错误.(当然,在运行时,如果您尝试实际使用未定义的变量,则会导致异常抛出.)这听起来很熟悉吗?或者我的想法是这样做的?
(从上一个问题编辑,我认为下面的代码不起作用)
我希望实现一个haskell函数f,它具有一个限制,使得它的2个参数不能具有相同的类型.我使用了以下代码:
{-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies, UndecidableInstances, FlexibleInstances, FlexibleContexts, TypeFamilies, IncoherentInstances #-}
data HTrue = HTrue
data HFalse = HFalse
class HEq x y b | x y -> b
instance (b ~ HTrue) => HEq x x b
instance (b ~ HFalse) => HEq x y b
g :: (HEq a b HFalse) => a -> b -> ()
g x y = ()
Run Code Online (Sandbox Code Playgroud)
现在函数g只接受a和b,如果它们有不同的类型.这是在haskell中编码类型不等式的"独特"方式吗?如果没有,它有什么问题?