小编Mag*_*nap的帖子

在Haskell中创建一个Read实例

我有一个数据类型

data Time = Time {hour :: Int,
                  minute :: Int
                 }
Run Code Online (Sandbox Code Playgroud)

我为其定义了Show的实例

instance Show Time where
  show (Time hour minute) = (if hour > 10
                             then (show hour)
                             else ("0" ++ show hour))
                            ++ ":" ++
                            (if minute > 10
                             then (show minute)
                             else ("0" ++ show minute))
Run Code Online (Sandbox Code Playgroud)

以格式打印出时间07:09.

现在,Show和之间应该是对称的Read,所以在阅读(但不是真正的(我认为)理解)这个这个,并阅读文档后,我想出了以下代码:

instance Read Time where
  readsPrec _ input =
    let hourPart = takeWhile (/= ':')
        minutePart = tail …
Run Code Online (Sandbox Code Playgroud)

parsing haskell typeclass symmetry

19
推荐指数
2
解决办法
7257
查看次数

安装有cabal的Darc未注册为shell命令

作为在我的计算机上安装Ubuntu的一部分,我apt-get安装了cabal.运行后cabal update,我跑了cabal install darcs,发现我需要诅咒,安装libncurses5-dev,发现我需要卷曲,安装它,当它仍然无法工作时,跑了cabal install darcs -f-curl.

这很有用,但darcs在运行时不会从shell运行darcs.它安装在~/.cabal/bin/darcs,所以我link从那里做了/bin.Darcs现在可以在shell中运行,但是我想知道是否有更好的方法来实现它,也许是cabal install在sudo下运行?

haskell darcs cabal

3
推荐指数
1
解决办法
385
查看次数

标签 统计

haskell ×2

cabal ×1

darcs ×1

parsing ×1

symmetry ×1

typeclass ×1