File: vector-concat.sml

package info (click to toggle)
mlton 20100608-2
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 34,980 kB
  • ctags: 69,089
  • sloc: ansic: 18,421; lisp: 2,879; makefile: 1,570; sh: 1,325; pascal: 256; asm: 97
file content (19 lines) | stat: -rw-r--r-- 526 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
(* Written by Stephen Weeks (sweeks@sweeks.com). *)

structure Main =
   struct
      fun doit n =
         let
            val len = 20000
            val sum = len * (len - 1)
            val v = Vector.tabulate (len, fn i => i)
            fun loop n =
               if n < 0
                  then ()
               else
                  if sum = Vector.foldl (op +) 0 (Vector.concat [v, v])
                     then loop (n - 1)
                  else raise Fail "bug"
         in loop (n * 10000)
         end
   end