diff options
Diffstat (limited to 'frontend/_aconcat.icl')
-rw-r--r-- | frontend/_aconcat.icl | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/frontend/_aconcat.icl b/frontend/_aconcat.icl index cf6abc1..8259980 100644 --- a/frontend/_aconcat.icl +++ b/frontend/_aconcat.icl @@ -36,7 +36,7 @@ where r2={r1 & [sr-i]=e \\ i<-[1..s2] & e<-l} r1={r0 & [i]=a.[i] \\ i<-[0..s1-1]} /*2.0 - r0=_createArray sr // 2.0 + r0=_createArray sr 0.2*/ //1.3 r0=_createArrayc sr @@ -59,8 +59,31 @@ where # (e,a1) = a1![i] = copy_elements a1 {a2 & [i]=e} (i+1) = (a2,a1) -arrayCopy a s + +arrayCopy a :== arrayCopyBegin a1 s where (s, a1) = usize a + +arrayAndElementsCopy place_holder copy_element_function array +/*2.0 + :== copy place_holder array1 (_createArray n) 0 n +0.2*/ +//1.3 + :== copy place_holder array1 (_createArrayc n) 0 n +//3.1 + where + (n, array1) + = usize array + copy place_holder array array_copy i n + | i == n + = (array_copy, array) + // otherwise + # (element, array) + = replace array i place_holder + # (copy_element, element) + = copy_element_function element + # (place_holder, array) + = replace array i element + = copy place_holder array {array_copy & [i] = copy_element} (i+1) n |