我是SML的新手(以及一般的函数式编程),如果有人可以帮我两件事,我会很高兴。
首先,我想读取一个NxM网格形式的文件,其中N,M是未知的,并将它们存储到数组中,可以是1d或2d。 这样做的好方法是什么? 到目前为止我所做的是将每一行作为字符串读取并创建一个字符串列表,然后将每一行转换为一个字符列表。这使我想到了第二个问题。
给定一个char列表列表如何创建一个char列表B,它是A中每个元素的串联。我认为foldr可以在这里应用,但是
foldr concat A
给了我一个tycon不匹配错误。
提前致谢!
答案 0 :(得分:0)
你的第一个问题有点过于模糊,因为一个好的答案取决于文件的结构,你还没有给出。无论如何,一旦你的第二个问题得到解答,你似乎就有了答案。
concat
的类型为string list -> string
。您的tycon不匹配,因为char list
不是string
。
相反,List structure有自己的名为concat
的函数。它是类型'a list list -> 'a list
的多态函数,意味着它可以采用任意列表列表并将其展平为单个列表。因此,第二个问题的答案很简单:
List.concat A