2017-05-13 7 views
2

私はSML(そして一般的なプログラミング)を初めて勉強しています。もし誰かが私に2つのことを教えてもらえればうれしいです。ファイルをSMLの配列に格納する方法。

まず、N、Mが不明なNxMグリッドの形式を持つファイルから読み込み、それらを1dまたは2dのいずれかの配列に格納したいとします。 これを行うにはどうすればよいでしょうか? 私が今まで行ってきたことは、すべての行を文字列として読み、文字列リストを作成し、すべての行をcharリストに変換します。

が考えるA.I内のすべての要素を連結したものですchar型のリストBを作成するために、どのようにchar型のリストリストAはfoldrはここに適用できると思っていたが、

foldr concat A 

は私にtyconの不一致エラーを与えます。

ありがとうございます!

答えて

0

最初の質問はあまりにも曖昧です。なぜなら、良い答えは、あなたが与えていないファイルの構造に依存するからです。いずれにしても、2番目の質問に答えるとすぐに回答が得られるようです。

concatは、タイプがstring list -> stringです。 char liststringではないため、タイコンの不一致があります。

代わりにList structureには、concatという名前の独自の関数があります。これは、タイプが'a list list -> 'a listの多形関数であり、リストの任意のリストを取り、それを単一のリストにまとめることができます。したがって、あなたの2番目の質問への答えは簡単です:

+0

これは私を助けました!どうもありがとうございました。それはまた私が自分のことをいくらか研究するのにも役立ちました。将来誰かが必要になる場合: 1d文字配列:explode(List.concat)A ' 2d char arrat:' Array2.fromList(map explode A) ' – cgss

関連する問題