Skip to content

Commit 79ee385

Browse files
committed
first commit, moving the standard library in a separate repository
0 parents  commit 79ee385

32 files changed

+409
-0
lines changed

Functional/Compose.ark

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
(let compose (fun (_f _g)
2+
(fun (_y &_f &_g) (_f (_g _y)))))

Functional/Drop.ark

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
(let drop (fun (_n _L) {
2+
(mut _index _n)
3+
(mut _output [])
4+
(while (< _index (len _L)) {
5+
(set _output (append _output (@ _L _index)))
6+
(set _index (+ 1 _index))
7+
})
8+
_output
9+
}))

Functional/DropWhile.ark

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
(let dropWhile (fun (_f _L) {
2+
(mut _index 0)
3+
(mut _output [])
4+
(mut _continue true)
5+
6+
(while (and (< _index (len _L)) _continue) {
7+
(if (_f (@ _L _index)) {
8+
(set _index (+ 1 _index))
9+
(set _output (append _output (@ _L _index)))
10+
}
11+
(set _continue false))
12+
})
13+
_output
14+
}))

Functional/Either.ark

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
(let left (fun (x)
3+
(fun (_injl _injr &x) (_injl x))
4+
))
5+
(let right (fun (y)
6+
(fun (_injl _injr &y) (_injr y))
7+
))
8+
}

Functional/Exceptions.ark

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
(import "Either.ark")
3+
4+
(let throw left)
5+
(let return right)
6+
(let try (fun (either continue handle)
7+
(either handle continue)))
8+
}

Functional/Filter.ark

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
(let filter (fun (_f _L) {
2+
(mut _index 0)
3+
(mut _output [])
4+
(while (< _index (len _L)) {
5+
(if (_f (@ _L _index))
6+
(set _output (append _output (@ _L _index)))
7+
nil)
8+
(set _index (+ 1 _index))
9+
})
10+
_output
11+
}))

Functional/Flip.ark

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
(let flip (fun (_f _a)
2+
(fun (_b &_f &_a) (_f _b _a))))

Functional/Functional.ark

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
(import "Functional/Compose.ark")
3+
(import "Functional/Drop.ark")
4+
(import "Functional/DropWhile.ark")
5+
(import "Functional/Either.ark")
6+
(import "Functional/Filter.ark")
7+
(import "Functional/Flip.ark")
8+
(import "Functional/Map.ark")
9+
(import "Functional/Reduce.ark")
10+
(import "Functional/Take.ark")
11+
(import "Functional/TakeWhile.ark")
12+
(import "Functional/Unzip.ark")
13+
(import "Functional/Zip.ark")
14+
}

Functional/Map.ark

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
(let map (fun (_f _L) {
2+
(mut _index 0)
3+
(mut _output [])
4+
(while (< _index (len _L)) {
5+
(set _output (append _output (_f (@ _L _index))))
6+
(set _index (+ 1 _index))
7+
})
8+
_output
9+
}))

Functional/Reduce.ark

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
(let reduce (fun (function _L) {
2+
(mut _index 1)
3+
(mut _output (@ _L 0))
4+
(while (< _index (len _L)) {
5+
(set _output (function _output (@ _L _index)))
6+
(set _index (+ 1 _index))
7+
})
8+
_output
9+
}))

0 commit comments

Comments
 (0)