value list_to_string a to_string = let buffer = Buffer.create 30 in do { Buffer.add_char buffer '['; for each i in List a do Buffer.add_string buffer (to_string i); Buffer.add_char buffer ';'; done; Buffer.add_char buffer ']'; Buffer.contents buffer }; value lazylist_to_string a to_string = let buffer = Buffer.create 30 in do { Buffer.add_string buffer "[^"; for each i in LList a do Buffer.add_string buffer (to_string i); Buffer.add_char buffer ';'; done; Buffer.add_string buffer "^]"; Buffer.contents buffer }; value stream_to_string a to_string = let buffer = Buffer.create 30 in do { Buffer.add_string buffer "[:"; for each i in Stream a do Buffer.add_char buffer '`'; Buffer.add_string buffer (to_string i); Buffer.add_char buffer ';'; done; Buffer.add_string buffer ":]"; Buffer.contents buffer }; value array_to_string a to_string = let buffer = Buffer.create 30 in do { Buffer.add_string buffer "[|"; for each i in Array a do Buffer.add_string buffer (to_string i); Buffer.add_char buffer ';'; done; Buffer.add_string buffer "|]"; Buffer.contents buffer }; value print_list a printer = do { print_string "["; for each i in List a do printer i; print_char ';'; done; print_string "]" }; value print_stream a printer = do { print_string "[:"; for each i in Stream a do print_char '`'; printer i; print_char ';'; done; print_string ":]"}; value print_array a printer = do { print_string "[|"; for each i in Array a do printer i; print_char ';'; done; print_string "|]"}; value print_int_array a = print_array a print_int; value print_int_list a = print_list a print_int; value print_int_stream a = print_stream a print_int; value print_int_char (i,c) = Printf.printf "(%i,'%c')" i c; print_endline "Testing ranges"; value printer = Printf.printf "%-70s => %s\n"; value string_of_int_char (i,c) = Printf.sprintf "(%i,'%c')" i c; value string_of_char c = Printf.sprintf "'%c'" c; print_endline "...arrays"; printer "[||]" (array_to_string [| |] string_of_int); printer "[|1|]" (array_to_string [|1|] string_of_int); printer "[|1;2;3;4;5|]" (array_to_string [|1;2;3;4;5|] string_of_int); printer "[|1..5|]" (array_to_string [| 1 .. 5 |] string_of_int); printer "[|5..1|]" (array_to_string [| 5 .. 1 |] string_of_int); printer "[|0;1..5;6|]" (array_to_string [|0; 1 .. 5; 6 |] string_of_int); printer "[|0;(0+1)..(4+1);6|]" (array_to_string [|0; (0+1) .. (4+1); 6 |] string_of_int); print_endline "...lists"; printer "[]" (list_to_string [ ] string_of_int); printer "([])" (list_to_string ( [ ] ) string_of_int); printer "[1;2;3;4;5]" (list_to_string [1;2;3;4;5] string_of_int); printer "[1]" (list_to_string [1] string_of_int); printer "[1::[]]" (list_to_string [1::[]] string_of_int); printer "[1..5]" (list_to_string [1 .. 5] string_of_int); printer "[5..1]" (list_to_string [5 .. 1] string_of_int); printer "[0;1..5;6]" (list_to_string [0 ; 1 .. 5;6] string_of_int); printer "[0;(0+1)..(4+1);6]" (list_to_string [0 ; (0+1) ..(4+1);6] string_of_int); print_endline "...streams"; printer "[: :]" (stream_to_string [: :] string_of_int); printer "[:`1;`2;`3;`4;`5:]" (stream_to_string [: `1; `2; `3; `4; `5:] string_of_int); printer "[:1..5:]" (stream_to_string [: 1 .. 5 :] string_of_int); printer "[:5..1:]" (stream_to_string [: 5 .. 1 :] string_of_int); printer "[:`0;1..5;`6:]" (stream_to_string [: `0;1 .. 5;`6 :] string_of_int); printer "[:`0;(0+1)..(4+1);`6:]" (stream_to_string [: `0;(0+1) .. (4+1);`6 :] string_of_int); print_endline "...lazy lists"; printer "[^^]" (lazylist_to_string [^ ^] string_of_int); printer "( [^^] )" (lazylist_to_string ( [^ ^] ) string_of_int); printer "[^1;2;3;4;5^]" (lazylist_to_string [^1;2;3;4;5^] string_of_int); printer "[^1^]" (lazylist_to_string [^1^] string_of_int); printer "[^1::[^^]^]" (lazylist_to_string [^1 :: [^ ^] ^] string_of_int); printer "[^1..5^]" (lazylist_to_string [^1 .. 5^] string_of_int); printer "[^5..1^]" (lazylist_to_string [^5 .. 1^] string_of_int); printer "[^0;1..5;6^]" (lazylist_to_string [^0 ; 1 .. 5;6^] string_of_int); printer "[^0;(0+1)..(4+1);6^]" (lazylist_to_string [^0 ; (0+1) ..(4+1);6^] string_of_int); print_endline "Testing comprehension"; print_endline "...streams"; printer "[: i | i <- [:`1;`2;`3;`4;`5:] :]" (stream_to_string [: i | i <- [:`1;`2;`3;`4;`5:] :] string_of_int); printer "[: i+1 | i <- [:`1;`2;`3;`4;`5:] :]" (stream_to_string [: i+1 | i <- [:`1;`2;`3;`4;`5:] :] string_of_int); printer "[: i+1 | i <- [:`1;`2;`3;`4;`5:]; i mod 2=0 :]" (stream_to_string [: i+1 | i <- [:`1;`2;`3;`4;`5:]; i mod 2=0 :] string_of_int); printer "[: i | (MoreStream) (Some i) <- [: `None; `None; `None; `Some 4; `Some 5:]; i mod 2=0 :]" (stream_to_string [: i | (MoreStream) (Some i) <- [: `None; `None; `None; `Some 4; `Some 5:]; i mod 2=0 :] string_of_int); printer "[:(i,j) | i <- [:`1;`2;`3;`4;`5] ; j <- [:`'a';`'e';`'i';`'o';`'u':] :]" (stream_to_string [:(i,j)| i <- [:`1;`2;`3;`4;`5:]; j <- [:`'a';`'e';`'i';`'o';`'u':] :] string_of_int_char); (*printer "[:i + 1 | i <- Stream [:1;2;3;4;5:]:]" (stream_to_string [:i + 1| i <- Stream [:1;2;3;4;5]] string_of_int); print_string "[:(i,j)| i <- Stream [:1;2;3;4;5:] ; j <- [:'a';'e';'i';'o';'u':]:]"; print_list [(i,j)| i <- List [1;2;3;4;5] ; j <- List ['a';'e';'i';'o';'u']] print_int_char*) print_endline "...arrays"; printer "[|i | i <- [|1;2;3;4;5|] |]" (array_to_string [|i | i <- [|1;2;3;4;5|] |] string_of_int); printer "[|i + 1 | i <- [|1;2;3;4;5|] |]" (array_to_string [| i+1 | i <- [|1;2;3;4;5|] |] string_of_int); printer "[|i + 1 | i <- [|1;2;3;4;5|]; i mod 2=0 :|]" (array_to_string [| i+1 | i <- [|1;2;3;4;5|];i mod 2=0 |] string_of_int); printer "[|(i,j) | i <- [|1;2;3;4;5|] ; j <- [|'a';'e';'i';'o';'u'|]|]" (array_to_string [|(i,j)| i <- [|1;2;3;4;5|] ; j <- [|'a';'e';'i';'o';'u'|]|] string_of_int_char); (*printer "[i + 1 | i <- [1;2;3;4;5]]" (list_to_string [i + 1| i <- [1;2;3;4;5]] string_of_int); print_string "[(i,j)| i <- [1;2;3;4;5] ; j <- ['a';'e';'i';'o';'u']]"; print_list [(i,j)| i <- [1;2;3;4;5] ; j <- ['a';'e';'i';'o';'u']] print_int_char*) print_endline "...lists"; printer "[i | i <- [1;2;3;4;5]]" (list_to_string [i | i <- [1;2;3;4;5]] string_of_int); printer "[i + 1 | i <- [1;2;3;4;5] :]" (list_to_string [ i+1 | i <- [1;2;3;4;5] ] string_of_int); printer "[i + 1 | i <- [1;2;3;4;5]; i mod 2=0 :]" (list_to_string [ i+1 | i <- [1;2;3;4;5];i mod 2=0 ] string_of_int); printer "[(i,j) | i <- [1;2;3;4;5] ; j <- ['a';'e';'i';'o';'u']]" (list_to_string [(i,j)| i <- [1;2;3;4;5] ; j <- ['a';'e';'i';'o';'u']] string_of_int_char); printer "[i | (i,_) <- [1,'a';2,'a';3,'a';4,'a';5,'a']]" (list_to_string [i | (i,_) <- [(1,'a');(2,'a');(3,'a');(4,'a');(5,'a')]] string_of_int); print_endline "...lazy lists"; printer "[^ i | i <- [^ 1;2;3;4;5 ^] ^]" (lazylist_to_string [^ i | i <- [^ 1;2;3;4;5^] ^] string_of_int); printer "[^ i + 1 | i <- [^ 1;2;3;4;5 ^] ^]" (lazylist_to_string [^ i+1 | i <- [^ 1;2;3;4;5^] ^] string_of_int); printer "[^ i + 1 | i <- [^ 1;2;3;4;5 ^]; i mod 2=0 :^]" (lazylist_to_string [^ i+1 | i <- [^ 1;2;3;4;5 ^];i mod 2=0 ^] string_of_int); printer "[^ (i,j) | i <- [^ 1;2;3;4;5 ^] ; j <- [^ 'a';'e';'i';'o';'u' ^] ^]" (lazylist_to_string [^ (i,j)| i <- [^ 1;2;3;4;5 ^] ; j <- [^ 'a';'e';'i';'o';'u' ^] ^] string_of_int_char); printer "[^ i | (i,_) <- [^ 1,'a';2,'a';3,'a';4,'a';5,'a' ^] ^]" (lazylist_to_string [^ i | (i,_) <- [^ (1,'a');(2,'a');(3,'a');(4,'a');(5,'a') ^] ^] string_of_int); print_endline "Testing cross-comprehension"; print_endline "...streams from lists"; printer "[: i | (MoreList) i <- [1;2;3;4;5] :]" (stream_to_string [: i | (MoreList) i <- [1;2;3;4;5] :] string_of_int); printer "[: i+1 | (MoreList) i <- [1;2;3;4;5:] :]" (stream_to_string [: i+1 | (MoreList) i <- [1;2;3;4;5] :] string_of_int); printer "[: i+1 | (MoreList) i <- [1;2;3;4;5:]; i mod 2=0 :]" (stream_to_string [: i+1 | (MoreList) i <- [1;2;3;4;5];i mod 2=0 :] string_of_int); printer "[:(i,j)| (MoreList) i <- [1;2;3;4;5] | j <- ['a';'e';'i';'o';'u']:]" (stream_to_string [:(i,j)| (MoreList) i <- [1;2;3;4;5] ; j <- ['a';'e';'i';'o';'u']:] string_of_int_char); printer "[: c | (MoreString) c <- \"aeiou\" :]" (stream_to_string [: c | (MoreString) c <- "aeiou" :] string_of_char); printer "[:(i,j)| (MoreList) i <- [1;2;3;4;5] | (MoreString) j <- \"aeiou\" :]" (stream_to_string [:(i,j)| (MoreList) i <- [1;2;3;4;5] ; (MoreString) j <- "aeiou" :] string_of_int_char); print_endline "...streams from arrays"; printer "[: i | (MoreArray) i <- [|1;2;3;4;5|] :]" (stream_to_string [: i | (MoreArray) i <- [|1;2;3;4;5|] :] string_of_int); printer "[: i+1 | (MoreArray) i <- [|1;2;3;4;5|] :]" (stream_to_string [: i+1 | (MoreArray) i <- [|1;2;3;4;5|] :] string_of_int); printer "[: i+1 | (MoreArray) i <- [|1;2;3;4;5|]; i mod 2=0 :]" (stream_to_string [: i+1 | (MoreArray) i <- [|1;2;3;4;5|];i mod 2=0 :] string_of_int); printer "[:(i,j)| (MoreArray) i <- [|1;2;3;4;5|] | j <- [|'a';'e';'i';'o';'u'|]]" (stream_to_string [:(i,j)| (MoreArray) i <- [|1;2;3;4;5|] ; j <- [|'a';'e';'i';'o';'u'|]:] string_of_int_char); print_endline "...streams from lazy lists"; printer "[: i | (LList) i <- [^ 1;2;3;4;5 ^] :]" (stream_to_string [: i | (LList) i <- [^ 1;2;3;4;5 ^] :] string_of_int); printer "[: i+1 | (LList) i <- [^ 1;2;3;4;5 ^] :]" (stream_to_string [: i+1 | (LList) i <- [^ 1;2;3;4;5 ^] :] string_of_int); printer "[: i+1 | (LList) i <- [^ 1;2;3;4;5 ^]; i mod 2=0 :]" (stream_to_string [: i+1 | (LList) i <- [^ 1;2;3;4;5 ^];i mod 2=0 :] string_of_int); printer "[:(i,j)| (LList) i <- [^ 1;2;3;4;5 ^] | j <- [^ 'a';'e';'i';'o';'u' ^] :]" (stream_to_string [:(i,j)| (LList) i <- [^ 1;2;3;4;5 ^] ; j <- [^ 'a';'e';'i';'o'; 'u' ^] :] string_of_int_char); print_endline "...lists from streams"; printer "[ i | (MoreStream) i <- [:1 .. 5:] ]" (list_to_string [ i | (MoreStream) i <- [:1 .. 5:] ] string_of_int); printer "[ i+1 | (MoreStream) i <- [:1 .. 5:] ]" (list_to_string [ i+1 | (MoreStream) i <- [:1 .. 5:] ] string_of_int); printer "[ i+1 | (MoreStream) i <- [:1 .. 5:]; i mod 2=0 ]" (list_to_string [ i+1 | (MoreStream) i <- [:1 .. 5:];i mod 2=0 ] string_of_int); printer "[(i,j)| (MoreStream) i <- [:1 .. 5:] | j <- [`'a';`'e';`'i';`'o';`'u']]" (list_to_string [(i,j)| (MoreStream) i <- [: 1 .. 5 :] ; j <- [:`'a';`'e';`'i';`'o';`'u':]] string_of_int_char); print_endline "...lists from arrays"; printer "[ i | (MoreArray) i <- [|1;2;3;4;5|] ]" (list_to_string [ i | (MoreArray) i <- [|1;2;3;4;5|] ] string_of_int); printer "[ i+1 | (MoreArray) i <- [|1;2;3;4;5|] ]" (list_to_string [ i+1 | (MoreArray) i <- [|1;2;3;4;5|] ] string_of_int); printer "[ i+1 | (MoreArray) i <- [|1;2;3;4;5|]; i mod 2=0 ]" (list_to_string [ i+1 | (MoreArray) i <- [|1;2;3;4;5|];i mod 2=0 ] string_of_int); printer "[(i,j)| (MoreArray) i <- [1;2;3;4;5] | j <- ['a';'e';'i';'o';'u'] ]" (list_to_string [(i,j)| (MoreArray) i <- [|1;2;3;4;5|] ; j <- [|'a';'e';'i';'o';'u'|] ] string_of_int_char); print_endline "...lists from lazy lists"; printer "[ i | (LList) i <- [^ 1;2;3;4;5 ^] ]" (list_to_string [ i | (LList) i <- [^ 1;2;3;4;5 ^] ] string_of_int); printer "[ i+1 | (LList) i <- [^ 1;2;3;4;5 ^] ]" (list_to_string [ i+1 | (LList) i <- [^ 1;2;3;4;5 ^] ] string_of_int); printer "[ i+1 | (LList) i <- [^ 1;2;3;4;5 ^]; i mod 2=0 ]" (list_to_string [ i+1 | (LList) i <- [^ 1;2;3;4;5 ^];i mod 2=0 ] string_of_int); printer "[(i,j)| (LList) i <- [^ 1;2;3;4;5 ^] | j <- [^ 'a';'e';'i';'o';'u' ^] ]" (list_to_string [(i,j)| (LList) i <- [^ 1;2;3;4;5 ^] ; j <- [^ 'a';'e';'i';'o';'u' ^] ] string_of_int_char); print_endline "...arrays from lists"; printer "[| i | (MoreList) i <- [1;2;3;4;5] |]" (array_to_string [| i | (MoreList) i <- [1;2;3;4;5] |] string_of_int); printer "[| i+1 | (MoreList) i <- [1;2;3;4;5] |]" (array_to_string [| i+1 | (MoreList) i <- [1;2;3;4;5] |] string_of_int); printer "[| i+1 | (MoreList) i <- [1;2;3;4;5]; i mod 2=0 |]" (array_to_string [| i+1 | (MoreList) i <- [1;2;3;4;5];i mod 2=0 |] string_of_int); printer "[|(i,j)| (MoreList) i <- [1;2;3;4;5] | j <- ['a';'e';'i';'o';'u']|]" (array_to_string [|(i,j)| (MoreList) i <- [1;2;3;4;5] ; j <- ['a';'e';'i';'o';'u']|] string_of_int_char); print_endline "...arrays from streams"; printer "[| i | (MoreStream) i <- [:1 .. 5:] |]" (array_to_string [| i | (MoreStream) i <- [:1 .. 5:] |] string_of_int); printer "[| i+1 | (MoreStream) i <- [:1 .. 5:] |]" (array_to_string [| i+1 | (MoreStream) i <- [:1 .. 5:] |] string_of_int); printer "[| i+1 | (MoreStream) i <- [:1 .. 5:]; i mod 2=0 |]" (array_to_string [| i+1 | (MoreStream) i <- [:1 .. 5:];i mod 2=0 |] string_of_int); printer "[|(i,j)| (MoreStream) i <- [1;2;3;4;5] | j <- ['a';'e';'i';'o';'u']|]" (array_to_string [|(i,j)| (MoreStream) i <- [:`1;`2;`3;`4;`5:] ; j <- [:`'a';`'e';`'i';`'o';`'u':]|] string_of_int_char); print_endline "...arrays from lazy lists"; printer "[| i | (LList) i <- [^ 1;2;3;4;5 ^] |]" (array_to_string [| i | (LList) i <- [^ 1;2;3;4;5 ^] |] string_of_int); printer "[| i+1 | (LList) i <- [^ 1;2;3;4;5 ^] |]" (array_to_string [| i+1 | (LList) i <- [^ 1;2;3;4;5 ^] |] string_of_int); printer "[| i+1 | (LList) i <- [^ 1;2;3;4;5 ^]; i mod 2=0 |]" (array_to_string [| i+1 | (LList) i <- [^ 1;2;3;4;5 ^] ;i mod 2=0 |] string_of_int); printer "[|(i,j)| (LList) i <- [^ 1;2;3;4;5 ^] | j <- [^ 'a';'e';'i';'o';'u' ^] |]" (array_to_string [|(i,j)| (LList) i <- [^ 1;2;3;4;5 ^] ; j <- [^ 'a';'e';'i';'o';'u' ^] |] string_of_int_char); print_endline "...lazylists from streams"; printer "[^ i | (MoreStream) i <- [:1 .. 5:] ^]" (lazylist_to_string [^ i | (MoreStream) i <- [:1 .. 5:] ^] string_of_int); printer "[^ i+1 | (MoreStream) i <- [:1 .. 5:] ^]" (lazylist_to_string [^ i+1 | (MoreStream) i <- [:1 .. 5:] ^] string_of_int); printer "[^ i+1 | (MoreStream) i <- [:1 .. 5:]; i mod 2=0 ^]" (lazylist_to_string [^ i+1 | (MoreStream) i <- [:1 .. 5:];i mod 2=0 ^] string_of_int); printer "[^(i,j)| (MoreStream) i <- [:1 .. 5:] | j <- [`'a';`'e';`'i';`'o';`'u'] ^]" (lazylist_to_string [^ (i,j)| (MoreStream) i <- [: 1 .. 5 :] ; j <- [:`'a';`'e';`'i';`'o';`'u':] ^] string_of_int_char); print_endline "...lazylists from arrays"; printer "[^ i | (MoreArray) i <- [|1;2;3;4;5|] ]" (lazylist_to_string [^ i | (MoreArray) i <- [|1;2;3;4;5|] ^] string_of_int); printer "[^ i+1 | (MoreArray) i <- [|1;2;3;4;5|] ]" (lazylist_to_string [^ i+1 | (MoreArray) i <- [|1;2;3;4;5|] ^] string_of_int); printer "[^ i+1 | (MoreArray) i <- [|1;2;3;4;5|]; i mod 2=0 ]" (lazylist_to_string [^ i+1 | (MoreArray) i <- [|1;2;3;4;5|];i mod 2=0 ^] string_of_int); printer "[^ (i,j)| (MoreArray) i <- [1;2;3;4;5] | j <- ['a';'e';'i';'o';'u'] ^]" (lazylist_to_string [^ (i,j)| (MoreArray) i <- [|1;2;3;4;5|] ; j <- [|'a';'e';'i';'o';'u'|] ^] string_of_int_char); print_endline "...lazylists from lists"; printer "[^ i | (MoreList) i <- [ 1;2;3;4;5 ] ]" (lazylist_to_string [^ i | (MoreList) i <- [ 1;2;3;4;5 ] ^] string_of_int); printer "[^ i+1 | (MoreList) i <- [ 1;2;3;4;5 ] ]" (lazylist_to_string [^ i+1 | (MoreList) i <- [ 1;2;3;4;5 ] ^] string_of_int); printer "[^ i+1 | (MoreList) i <- [ 1;2;3;4;5 ]; i mod 2=0 ]" (lazylist_to_string [^ i+1 | (MoreList) i <- [ 1;2;3;4;5 ];i mod 2=0 ^] string_of_int); printer "[^ (i,j)| (MoreList) i <- [ 1;2;3;4;5 ] | j <- [ 'a';'e';'i';'o';'u' ] ^]" (lazylist_to_string [^ (i,j)| (MoreList) i <- [ 1;2;3;4;5 ] ; j <- [ 'a';'e';'i';'o';'u' ] ^] string_of_int_char); print_endline "Testing for-each"; print_endline "...lists"; print_string "for each i in List ['a';'b';'c';'d'] do print_char i done =>"; for each i in List ['a';'b';'c';'d'] do print_char i done; print_newline (); value a = for each i in List.map [1;2;3;4;5] do i + 1 done; printer "for each i in List.map [1;2;3;4;5] do i + 1 done" (list_to_string a string_of_int); value b = for each acc c in [] <- ListLabels.fold_left [1;2;3;4;5] do [c::acc] done; printer "for each acc c in [] <- ListLabels.fold_left [1;2;3;4;5] do [c::acc] done" (list_to_string b string_of_int); (*value b = for each acc in ListLabels.fold_left ~init:[] [1;2;3;4;5] ~f: do done;*) value c = for each c acc in [] <- ListLabels.fold_right [1;2;3;4;5] do [c::acc] done; printer "for each c acc in [] <- ListLabels.fold_right [1;2;3;4;5] do [c::acc] done" (list_to_string c string_of_int); print_endline "...arrays"; print_string "for each i in Array [|'a';'b';'c';'d'|] do print_char i done =>"; for each i in Array [|'a';'b';'c';'d'|] do print_char i done; print_newline (); print_string "for each i c in Array.iteri [|'a';'b';'c';'d'|] do print_int_char (i,c) done =>"; for each i c in Array.iteri [|'a';'b';'c';'d'|] do print_int_char (i,c) done; print_newline (); value a = for each i in Array.map [|1;2;3;4;5|] do i + 1 done; printer "for each i in Array.map [|1;2;3;4;5|] do i + 1 done" (array_to_string a string_of_int); value b = for each acc c in [] <- ArrayLabels.fold_left [|1;2;3;4;5|] do [c::acc] done; printer "for each acc c in [] <- ArrayLabels.fold_left [|1;2;3;4;5|] do [c::acc] done" (list_to_string b string_of_int); value c = for each c acc in [] <- ArrayLabels.fold_right [|1;2;3;4;5|] do [c::acc] done; printer "for each c acc in [] <- ArrayLabels.fold_right [|1;2;3;4;5|] do [c::acc] done" (list_to_string c string_of_int); print_endline "...streams"; print_string "for each i in MoreStream [:`'a';`'b';`'c';`'d':] do print_char i done =>"; for each i in MoreStream [:`'a';`'b';`'c';`'d':] do print_char i done; print_newline (); value a = for each i in MoreStream.map [:`1;`2;`3;`4;`5:] do i + 1 done; printer "for each i in MoreStream.map [:`1;`2;`3;`4;`5:] do i + 1 done" (stream_to_string a string_of_int); print_endline "...lazy lists"; print_string "for each i in LList [^'a';'b';'c';'d'^] do print_char i done =>"; for each i in LList [^'a';'b';'c';'d'^] do print_char i done; print_newline (); print_string "for each i c in LList.iteri [^'a';'b';'c';'d'^] do print_int_char (i,c) done =>"; for each i c in LList.iteri [^'a';'b';'c';'d'^] do print_int_char (i,c) done; print_newline (); (*value b = for each acc c in [] <- MoreStreamLabels.fold_left [:1;2;3;4;5:] do [c::acc] done; printer "for each acc c in [] <- MoreStreamLabels.fold_left [:1;2;3;4;5:] do [c::acc] done" (list_to_string b string_of_int); value c = for each c acc in [] <- MoreStreamLabels.fold_right [:1;2;3;4;5:] do [c::acc] done; printer "for each c acc in [] <- MoreStreamLabels.fold_right [:1;2;3;4;5:] do [c::acc] done" (list_to_string c string_of_int); *) (*Array.fold_right ~f: ~init: list for fold acc c in [] <- ArrayLabels.fold_left [:'a';'b';'c';'d':] ~init:[] do done; for each acc c in Array.fold_right [] <- [:'a';'b';'c';'d':] do [c::acc]; done []; print_newline (); *)