OSDN Git Service

first commit
[soopy/alpha1.git] / src / test / cat.sp
1 fun printlines(lines){
2   do: match(lines){
3         []: true;
4         x::xs: [
5             println x;
6             printlines xs;
7           ];
8       };
9 };
10
11 fun cat(file){
12   var: [fin, lines];
13   do: [
14     fin = openIn file;
15     lines = fin readlineS;
16     printlines lines;
17     fin close;
18   ];
19 };
20
21
22 fun cats(files){
23   do: match(files){
24         []:    [];
25         x::xs: [ cat x; cats xs; ];
26       };
27 };
28
29 fun usage(){
30   do: [
31     println "usage: soopy cat.sp file1 [file2 ... fileN]";
32   ];
33 };
34
35 /*
36  * Main routine
37  */
38
39 files = Soopy commandLine;
40 match(files){
41   []: usage();
42   _:  cats(files);
43 };
44
45