我有一个数据类型
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) 作为在我的计算机上安装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下运行?