File: 279_arraySliceCopy.sml

package info (click to toggle)
smlsharp 4.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 123,732 kB
  • sloc: ansic: 16,725; sh: 4,347; makefile: 2,191; java: 742; haskell: 493; ruby: 305; cpp: 284; pascal: 256; ml: 255; lisp: 141; asm: 97; sql: 74
file content (25 lines) | stat: -rw-r--r-- 627 bytes parent folder | download | duplicates (2)
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
fun fromSliceToArray s =
    Array.tabulate(ArraySlice.length s, fn i => ArraySlice.sub(s, i))
val a1 = Array.tabulate(10, fn i => i);
val a2 = ArraySlice.slice(a1, 0, SOME (Array.length a1 - 1))
val a3 = fromSliceToArray a2
val a4 = ArraySlice.copy{src=a2, dst=a1, di=1}
val a5 = a1

val _ =
    if List.tabulate (Array.length a5, fn i => Array.sub (a5, i))
       = [0,0,1,2,3,4,5,6,7,8]
    then ()
    else raise Fail "ng"

(* 2014-01-26 ohori
val a5 = <0,0,0,0,0,0,0,0,0,0> : int array
となり,arraysliceから元になっているarrayへのcopy
でメモリーが破壊される.
*)

(*
2014-01-29 katsu

fixed
*)