forked from elixirscript/elixirscript
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtuple.js
More file actions
66 lines (51 loc) · 1.15 KB
/
Copy pathtuple.js
File metadata and controls
66 lines (51 loc) · 1.15 KB
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
55
56
57
58
59
60
61
62
63
64
65
66
import Kernel from './kernel';
function to_string(tuple){
return tuple.toString();
};
function delete_at(tuple, index){
let new_list = [];
for (var i = 0; i < tuple.count(); i++) {
if(i !== index){
new_list.push(tuple.get(i));
}
}
return Kernel.SpecialForms.tuple.apply(null, new_list);
};
function duplicate(data, size){
let array = [];
for (var i = size - 1; i >= 0; i--) {
array.push(data);
}
return Kernel.SpecialForms.tuple.apply(null, array);
};
function insert_at(tuple, index, term){
let new_tuple = [];
for (var i = 0; i <= tuple.count(); i++) {
if(i === index){
new_tuple.push(term);
i++;
new_tuple.push(tuple.get(i));
}else{
new_tuple.push(tuple.get(i));
}
}
return Kernel.SpecialForms.tuple.apply(null, new_tuple);
};
function from_list(list){
return Kernel.SpecialForms.tuple.apply(null, list);
};
function to_list(tuple){
let new_list = [];
for (var i = 0; i < tuple.count(); i++) {
new_list.push(tuple.get(i));
}
return Kernel.SpecialForms.list(...new_list);
};
export default {
to_string,
delete_at,
duplicate,
insert_at,
from_list,
to_list
};