File: test.sml.html

package info (click to toggle)
source-highlight 1.11-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 4,872 kB
  • ctags: 4,699
  • sloc: sh: 3,633; cpp: 2,606; lex: 2,463; ansic: 1,610; makefile: 537; php: 185; perl: 145; yacc: 122; ruby: 63; sed: 53; python: 45; ml: 38; java: 30
file content (54 lines) | stat: -rw-r--r-- 9,511 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<pre><tt><b><font color="#0000FF">fun</font></b> map <font color="#990000">(</font>f <font color="#990000">:</font> 'a <font color="#990000">-</font><font color="#990000">&gt;</font> 'b<font color="#990000">,</font> xs <font color="#990000">:</font> 'a list<font color="#990000">)</font> <font color="#990000">:</font> 'b list <font color="#990000">=</font>
  <b><font color="#0000FF">case</font></b> xs <b><font color="#0000FF">of</font></b>
    nil <font color="#990000">=</font><font color="#990000">&gt;</font> nil
  <font color="#990000">|</font> <font color="#990000">(</font>y<font color="#990000">:</font><font color="#990000">:</font>ys<font color="#990000">)</font> <font color="#990000">=</font><font color="#990000">&gt;</font> <font color="#990000">(</font>f <font color="#990000">(</font>y<font color="#990000">)</font><font color="#990000">)</font><font color="#990000">:</font><font color="#990000">:</font><font color="#990000">(</font>map <font color="#990000">(</font>f<font color="#990000">,</font> ys<font color="#990000">)</font><font color="#990000">)</font><font color="#990000">;</font>

<b><font color="#0000FF">fun</font></b> zip <font color="#990000">(</font>xs <font color="#990000">:</font> 'a list<font color="#990000">,</font> ys <font color="#990000">:</font> 'b list<font color="#990000">)</font> <font color="#990000">:</font> <font color="#990000">(</font>'a <font color="#990000">*</font> 'b<font color="#990000">)</font> list <font color="#990000">=</font>
  <b><font color="#0000FF">case</font></b> <font color="#990000">(</font>xs<font color="#990000">,</font> ys<font color="#990000">)</font> <b><font color="#0000FF">of</font></b>
    <font color="#990000">(</font>nil<font color="#990000">,</font> _<font color="#990000">)</font> <font color="#990000">=</font><font color="#990000">&gt;</font> nil
  <font color="#990000">|</font> <font color="#990000">(</font>_<font color="#990000">,</font> nil<font color="#990000">)</font> <font color="#990000">=</font><font color="#990000">&gt;</font> nil
  <font color="#990000">|</font> <font color="#990000">(</font>b<font color="#990000">:</font><font color="#990000">:</font>bs<font color="#990000">,</font> c<font color="#990000">:</font><font color="#990000">:</font>cs<font color="#990000">)</font> <font color="#990000">=</font><font color="#990000">&gt;</font> <font color="#990000">(</font>b<font color="#990000">,</font> c<font color="#990000">)</font><font color="#990000">:</font><font color="#990000">:</font><font color="#990000">(</font>zip <font color="#990000">(</font>bs<font color="#990000">,</font> cs<font color="#990000">)</font><font color="#990000">)</font><font color="#990000">;</font>

<b><font color="#0000FF">fun</font></b> filter <font color="#990000">(</font>f <font color="#990000">:</font> 'a <font color="#990000">-</font><font color="#990000">&gt;</font> bool<font color="#990000">,</font> xs <font color="#990000">:</font> 'a list<font color="#990000">)</font> <font color="#990000">:</font> 'a list <font color="#990000">=</font>
  <b><font color="#0000FF">case</font></b> xs <b><font color="#0000FF">of</font></b>
    nil <font color="#990000">=</font><font color="#990000">&gt;</font> nil
  <font color="#990000">|</font> <font color="#990000">(</font>y<font color="#990000">:</font><font color="#990000">:</font>ys<font color="#990000">)</font> <font color="#990000">=</font><font color="#990000">&gt;</font>
      <b><font color="#0000FF">if</font></b> f <font color="#990000">(</font>y<font color="#990000">)</font> <b><font color="#0000FF">then</font></b>
        y<font color="#990000">:</font><font color="#990000">:</font><font color="#990000">(</font>filter <font color="#990000">(</font>f<font color="#990000">,</font> ys<font color="#990000">)</font><font color="#990000">)</font>
      <b><font color="#0000FF">else</font></b>
        filter <font color="#990000">(</font>f<font color="#990000">,</font> ys<font color="#990000">)</font><font color="#990000">;</font>

<b><font color="#0000FF">fun</font></b> foldl <font color="#990000">(</font>f <font color="#990000">:</font> 'a <font color="#990000">*</font> 'b <font color="#990000">-</font><font color="#990000">&gt;</font> 'a<font color="#990000">,</font> n <font color="#990000">:</font> 'a<font color="#990000">,</font> xs <font color="#990000">:</font> 'b list<font color="#990000">)</font> <font color="#990000">:</font> 'a <font color="#990000">=</font>
  <b><font color="#0000FF">case</font></b> xs <b><font color="#0000FF">of</font></b>
    nil <font color="#990000">=</font><font color="#990000">&gt;</font> n
  <font color="#990000">|</font> <font color="#990000">(</font>y<font color="#990000">:</font><font color="#990000">:</font>ys<font color="#990000">)</font> <font color="#990000">=</font><font color="#990000">&gt;</font> foldl <font color="#990000">(</font>f<font color="#990000">,</font> f <font color="#990000">(</font>n<font color="#990000">,</font> y<font color="#990000">)</font><font color="#990000">,</font> ys<font color="#990000">)</font><font color="#990000">;</font>

<b><font color="#0000FF">fun</font></b> upto <font color="#990000">(</font>x <font color="#990000">:</font> int<font color="#990000">,</font> y <font color="#990000">:</font> int<font color="#990000">)</font> <font color="#990000">:</font> int list <font color="#990000">=</font>
  <b><font color="#0000FF">if</font></b> x <font color="#990000">&lt;</font><font color="#990000">=</font> y <b><font color="#0000FF">then</font></b>
    x<font color="#990000">:</font><font color="#990000">:</font><font color="#990000">(</font>upto <font color="#990000">(</font>x <font color="#990000">+</font> <font color="#993399">1</font><font color="#990000">,</font> y<font color="#990000">)</font><font color="#990000">)</font>
  <b><font color="#0000FF">else</font></b>
    nil<font color="#990000">;</font>

<b><font color="#0000FF">fun</font></b> sum <font color="#990000">(</font>xs <font color="#990000">:</font> int list<font color="#990000">)</font> <font color="#990000">:</font> int <font color="#990000">=</font> 
  <b><font color="#0000FF">case</font></b> xs <b><font color="#0000FF">of</font></b>
    nil <font color="#990000">=</font><font color="#990000">&gt;</font> <font color="#993399">0</font>
  <font color="#990000">|</font> <font color="#990000">(</font>x'<font color="#990000">:</font><font color="#990000">:</font>xs'<font color="#990000">)</font> <font color="#990000">=</font><font color="#990000">&gt;</font> x' <font color="#990000">+</font> sum <font color="#990000">(</font>xs'<font color="#990000">)</font><font color="#990000">;</font>
  
<b><font color="#0000FF">fun</font></b> fold <font color="#990000">(</font>opr<font color="#990000">:</font> int<font color="#990000">*</font>int<font color="#990000">-</font><font color="#990000">&gt;</font>int<font color="#990000">,</font> base<font color="#990000">:</font> int<font color="#990000">,</font> xs<font color="#990000">:</font> int list<font color="#990000">)</font> <font color="#990000">:</font> int <font color="#990000">=</font> 
  <b><font color="#0000FF">case</font></b> xs <b><font color="#0000FF">of</font></b>
    nil <font color="#990000">=</font><font color="#990000">&gt;</font> base
  <font color="#990000">|</font> <font color="#990000">(</font>x'<font color="#990000">:</font><font color="#990000">:</font>xs'<font color="#990000">)</font> <font color="#990000">=</font><font color="#990000">&gt;</font> opr<font color="#990000">(</font>x'<font color="#990000">,</font> fold<font color="#990000">(</font>opr<font color="#990000">,</font> base<font color="#990000">,</font> xs'<font color="#990000">)</font><font color="#990000">)</font><font color="#990000">;</font>

<b><font color="#0000FF">fun</font></b> add<font color="#990000">(</font>x<font color="#990000">,</font>y<font color="#990000">)</font> <font color="#990000">=</font> x<font color="#990000">+</font>y<font color="#990000">;</font>

<b><font color="#0000FF">fun</font></b> foldsum <font color="#990000">(</font>xs<font color="#990000">:</font> int list<font color="#990000">)</font> <font color="#990000">=</font> fold <font color="#990000">(</font>add<font color="#990000">,</font><font color="#993399">0</font><font color="#990000">,</font> xs<font color="#990000">)</font><font color="#990000">;</font>

<b><font color="#0000FF">fun</font></b> foldr <font color="#990000">(</font>opr<font color="#990000">:</font> 'b<font color="#990000">*</font>'a<font color="#990000">-</font><font color="#990000">&gt;</font>'a<font color="#990000">,</font> base<font color="#990000">:</font> 'a<font color="#990000">,</font> xs<font color="#990000">:</font> 'b list<font color="#990000">)</font> <font color="#990000">:</font> 'a <font color="#990000">=</font> 
  <b><font color="#0000FF">case</font></b> xs <b><font color="#0000FF">of</font></b>
    nil <font color="#990000">=</font><font color="#990000">&gt;</font> base
  <font color="#990000">|</font> <font color="#990000">(</font>x'<font color="#990000">:</font><font color="#990000">:</font>xs'<font color="#990000">)</font> <font color="#990000">=</font><font color="#990000">&gt;</font> opr<font color="#990000">(</font>x'<font color="#990000">,</font> foldr<font color="#990000">(</font>opr<font color="#990000">,</font> base<font color="#990000">,</font> xs'<font color="#990000">)</font><font color="#990000">)</font><font color="#990000">;</font>




</tt></pre>