У меня есть этот тип данных:
datatype 'a stream' = Susp of unit -> 'a stream
and 'a stream = Empty | Cons of 'a * 'a stream'
, и я хочу написать функцию сглаживания, имеющую тип ниже.
flatten: ’a stream’ stream’ -> ’a stream’
Функция сглаживания будет принимать поток потоков в качестве вводаи сгладить это, добавив их.
Как мне это сделать?Есть идеи?
Спасибо.
Редактировать: Я знаю, как это сделать для списков.Это довольно просто: fun flatten [] = [] | flat (l::ls) = l @ flatten ls;
Помогите мне с потоками, пожалуйста, я не знаю, как сопоставить шаблон с потоком.