This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| exception NotFoundException | |
| (* | |
| fun get_primes n = | |
| let | |
| open Array | |
| fun check array = | |
| let | |
| fun check_one n array = | |
| if not (sub (!array, n)) then () |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| fun remove_a_stone vec i = | |
| let | |
| open VectorSlice | |
| val size = Vector.length vec - 1 | |
| val newvec = | |
| if i = 0 then vector (slice (vec, 1, SOME size)) | |
| else if i = size then vector (slice (vec, 0, SOME size)) | |
| else concat [slice (vec, 0, SOME i), | |
| slice (vec, i+1, SOME (size-i))] | |
| in |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| (define factorial | |
| (lambda (n) | |
| (if (= n 0) | |
| 1 | |
| (* n (factorial (- n 1)))))) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| val sqrt = Math.sqrt; | |
| fun simpleMap(f, nil) = nil | |
| | simpleMap(f, x::xs) = f(x) :: simpleMap(f, xs); | |
| fun vec_length(L) = simpleMap(fn (x, y) => sqrt(x * x + y * y), L); | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| val sqrt = Math.sqrt; | |
| fun vec_length(nil) = nil | |
| | vec_length((x, y)::zs) = sqrt(x * x + y * y)::vec_length(zs); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| fun square(x:real) = x*x; | |
| fun plus(x:real, y) = x+y; | |
| fun length(nil) = 0.0 | |
| | length(x::xs) = 1.0 + length(xs); | |
| fun variance(L) = | |
| let | |
| val n = length(L) | |
| in | |
| reduce(plus, map(square, L))/n - | |
| square(reduce(plus, L)/n) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| fun trap(a, b, n, F) = | |
| if n <= 0 orelse b-a <= 0.0 then 0.0 | |
| else | |
| let | |
| val delta = (b-a)/real(n) | |
| in | |
| delta * (F(a) + F(a+delta))/2.0 + | |
| trap(a+delta, b, n-1, F) | |
| end; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| fun testZero(0) = print("zero\n") | |
| | testZero(_) = print("not zero\n"); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| fun swapNeighbor(nil) = nil | |
| | swapNeighbor(x::nil) = x::nil | |
| | swapNeighbor(x::y::zs) = y::x::swapNeighbor(zs); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| fun swap nil = nil | |
| | swap [x] = [x] | |
| | swap (x::y::zs) = y::x::(swap zs); |