1
でストリームをフラット化。は、私はこのデータ型を持っているSML
flatten: ’a stream’ stream’ -> ’a stream’
flatten関数は、ストリームのストリームを入力として受け取り、追加してフラット化します。
どうすればよいですか?何か案は?
ありがとうございました。
編集:私はリストを作成する方法を知っています。それは非常に簡単です: fun flatten [] = [] | flat (l::ls) = l @ flatten ls;
ストリームで私を助けてください、私はストリームのストリームに一致するパターンを知りません。
私は、これは宿題であると仮定します。最初にリストリストを平坦化してストリームに適用することをお勧めします。 –
@AndreasRossberg、私はリストのためにそれを行う方法を知っています。これはかなり単純です: 'fun flatten [] = [] |フラット(l :: ls)= l @ flatten ls; ' ストリームのヘルプをお願いします。ストリームのストリームとパターンを合わせる方法はわかりません。 – Dave
あなたはいつものようにパターンマッチします: 'fun flatten Empty = ... | flatten(Cons(x、xs))= ... 'である。またストリームに 'append'を定義する必要があります。唯一残っているのは、正しい場所に 'fn'を挿入することです。 –