source: project/release/4/9ML-toolkit/trunk/NineMLrandom.scm @ 27284

Last change on this file since 27284 was 27284, checked in by Ivan Raikov, 9 years ago

9ML-toolkit: added missing NineMLrandom module

File size: 1.3 KB
Line 
1
2(define (Random:module-initialize module-name enter-module find-module eval-env)
3
4  (define path-real   (Pident (ident-create "real")))
5  (define real-type   (Tcon (Tpath path-real) '()))
6
7  (define-values (type-variables reset-type-variables
8                                 find-type-variable 
9                                 begin-def end-def newvar generalize
10                                 make-deftype make-valtype make-kind
11                                 binop ternop path-star path-list path-arrow
12                                 star-type list-type arrow-type label-type string-type bot-type
13                                 )
14    (core-utils))
15
16  (let (
17        (sig
18         (append
19
20          (map
21           (lambda (name)
22             (Value_sig (ident-create name)
23                        (make-valtype '() (arrow-type real-type real-type))))
24           '("exponential"))
25
26          (map
27           (lambda (name)
28             (Value_sig (ident-create name)
29                        (make-valtype '() (arrow-type real-type (arrow-type real-type real-type)))))
30           '("uniform" "normal"))
31
32          ))
33
34        (struct 
35         (append
36
37          (map (lambda (name) (datacon 'random name 2))
38               '(uniform normal)
39               )
40
41          (map (lambda (name) (datacon 'random name 1))
42               '(exponential)
43               )
44
45          ))
46        )
47   
48    (let* ((modname (ident-create module-name))
49           (msig    (Signature sig))
50           (mdef    (Module_def modname (Structure struct))))
51      (enter-module modname msig)
52      (eval-env (mod-eval-cbv (eval-env) (list mdef)))
53      )
54    ))
55 
56   
57
58
Note: See TracBrowser for help on using the repository browser.