Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 关于元组和文件的列表_Haskell - Fatal编程技术网

Haskell 关于元组和文件的列表

Haskell 关于元组和文件的列表,haskell,Haskell,我需要从一个文件中获取元组列表和每个元组的多个第2个和第3个值。例如:[(1,“A”,100,2),(2,“B”,50,3)]。我需要找到100*2=200和50*3=150。我只想显示最终的总数。那是350。我从一个文件中获取元组列表。我得到了这样一个错误: - Type error in generator *** Term : generator c *** Type : Int *** Does not match : IO a 代码如下所示 t

我需要从一个文件中获取元组列表和每个元组的多个第2个和第3个值。例如:[(1,“A”,100,2),(2,“B”,50,3)]。我需要找到100*2=200和50*3=150。我只想显示最终的总数。那是350。我从一个文件中获取元组列表。我得到了这样一个错误:

- Type error in generator
*** Term           : generator c
*** Type           : Int
*** Does not match : IO a
代码如下所示

type Code=Int
type Price=Int
type Quantity=Int
type Name=String
type ProductDatabase=(Code,Name,Price,Quantity)  
 bill=do
           b<-cart_list_returner     
           let c :: [ProductDatabase]
               c = b    
           w<-generator c
           let r :: String
               r = w
           putStrLn r

    generator::[ProductDatabase]->Int
    generator c=foldl (\a (id,x, y, z) -> a + y*z) 0 c
type code=Int
类型Price=Int
类型数量=整数
类型名称=字符串
类型ProductDatabase=(代码、名称、价格、数量)
比尔=做
b a+y*z)0 c

我只想让程序获取文件中的元组列表并生成总数。有人可以帮我。提前感谢

使用
@Roy确认
购物车列表返回者
的结果如您所愿,添加行
打印b
@Roy如果答案正确,您可以接受。这就是这个过程实际应该如何运作。@dmitry.malikov:谢谢你,先生。也许制定一个正常的问题比问很多类似的问题要好[(1,“a”,100,2),(2,“B”,50,3)]列表?@dmitry.malikov:先生,实际上我不是哈斯克尔的专家。只是在里面做一个小作业。这就是为什么会出现不同的问题。不管怎样,很抱歉问了太多关于同一问题的问题。@Roy:如果这些问题与作业有关,你可能应该把它们标记为“家庭作业”。此外,如果你能通读所有的问题并接受正确的答案,那就太好了:谢谢!
       w<-generator c
       let w = generator c