3 您可以在.ghci文件中定義多行函數嗎?在.ghci文件中定義多行函數 我已經試過 what :: Show a => a -> a what = Db.traceShowId 但這並沒有工作。有沒有辦法做到這一點? 來源 2017-08-16 hgiesel +6 爲什麼不只是把它寫在一個單獨的名爲.hs文件並有你的.ghci加載? – Cubic +0 你也可以使用大括號和分號來編寫haskell,以使它適合oneliner:'what :: Show a => a - > a; what = Db.traceShowId'。你可以做case語句:'case x of {1 - >「one」; 2 - >「兩」; _ - >「我不知道」}',實例定義'instance Num a => Num(X a){(+)=> liftA2(+); (*)= liftA2(*); { - ... - }}'和其他任何構造。 – rampion +0 @Cubic工作很好,我創建了一個'.ghci.hs'文件,並用':load〜/ .ghci.hs'將它加載到'.ghci'中。 –
3 .ghci文件不適用於此類定義。 不過,如果你真的一定要,你可以使用 :{ line1 line2 ... :} 否則,你可以嘗試把整個定義一行 line1 ; line2 ; ... 來源 2017-08-16 13:56:28 chi +0 值得注意的是,一個多行語句可以包含多個定義(比如'newtype Unit = Unit()'或者單個表達式(比如'1 + 2')。 – rampion +0 這對我不起作用 – hgiesel +0 @hgiesel Ah ,有趣的,我認爲它的工作,試試我在我的編輯中添加的替代方案 – chi
爲什麼不只是把它寫在一個單獨的名爲.hs文件並有你的.ghci加載? – Cubic
你也可以使用大括號和分號來編寫haskell,以使它適合oneliner:'what :: Show a => a - > a; what = Db.traceShowId'。你可以做case語句:'case x of {1 - >「one」; 2 - >「兩」; _ - >「我不知道」}',實例定義'instance Num a => Num(X a){(+)=> liftA2(+); (*)= liftA2(*); { - ... - }}'和其他任何構造。 – rampion
@Cubic工作很好,我創建了一個'.ghci.hs'文件,並用':load〜/ .ghci.hs'將它加載到'.ghci'中。 –