0
鉴于这些声明我有在SML无法理解流牵引件:合并两个流,从一个那么其他
exception Bad of string;
fun from seed next = Cons(seed,fn() => from (next seed) next);
fun head (Nil) = raise Bad("got nil in head")
| head (Cons(a,b)) = a;
fun tail (Nil) = raise Bad("got nil in tail")
| tail(Cons(a,b)) = b();
fun take 0 stream = nil
| take n (Nil) = raise Bad("got nil in take")
|take n (Cons(h,t)) = h::(take (n-1) (t()));
我可以创建土黄流[1.0,2.0,3.0 ...]像所以:val nat = from 1.0 (fn x => x+1.0);
和1的数据流:val one = from 1.0 (fn x => x);
但我怎么去创造这两个流的流?特别是一个合并两个流并输出流的函数。
类似于:fun merge a b
其中a和b是流。也就是说,如果我们合并这两个后做take 5
它会给[1.0,1.0,2.0,1.0,3.0]
非常整洁,生病玩耍它谢谢你 – user3831011