输入应该如何进入ghci解释器?

时间:2017-09-08 15:10:23

标签: haskell ghci

我正在尝试this tutorial的某项计划。该计划如下:

type Name = String
type PriceInCents = Int
type ShoppingListItem = (Name, PriceInCents)
type ShoppingList = [ShoppingListItem]

shoppingList :: ShoppingList
shoppingList = [ ("Bananas", 300)
               , ("Chocolate", 250)
               , ("Milk", 300)
               , ("Apples", 450)
               ]

sumShoppingList :: ShoppingList -> PriceInCents
sumShoppingList []     = 0
sumShoppingList (x:xs) = getPriceFromItem x 
                         + sumShoppingList xs


getPriceFromItem :: ShoppingListItem -> PriceInCents
getPriceFromItem (_, price) = price

main :: IO ()
main = putStrLn ("Price of shopping list is " 
                ++ show (sumShoppingList shoppingList)
                ++ " cents.")

我尝试过运行它并没有错误,但我不知道输入什么。我试过了但是我猜错了,因为我收到了这个错误:

  

错误 - 未定义的数据构造函数

谁能告诉我应该输入什么?

1 个答案:

答案 0 :(得分:5)

该程序正如其编写的那样,不需要任何输入。使用ghc进行编译将生成可运行的可执行文件。或者,使用runhaskell运行也一样。

我怀疑,根据您的问题,您正在ghci解释器中运行。在这种情况下,您可以使用:l filename.hs(或:r重新加载)加载文件,然后只需调用main即可运行主函数。