wisp
 
(Arne Babenhauserheide)
2014-12-09: merge

merge

diff --git a/examples/ensemble-estimation.w b/examples/ensemble-estimation.w
--- a/examples/ensemble-estimation.w
+++ b/examples/ensemble-estimation.w
@@ -77,10 +77,11 @@ define* : write-multiple . x
 
 ;; Start with the simple case: One variable and independent observations (R diagonal)
 ;; First define a truth
-define x^true : append-ec (: i 10) '(0.5 0.6 7 0.1 0.7 0.9 0.8 0.4)
+define x^seed '(0.5 0.6 7 0.1 0.7 0.9 0.8 0.4)
+define x^true : append-ec (: i (length x^seed)) : list-ec (: j x^seed) : * j : list-ref x^seed i
 ;; And add an initial guess of the parameters
-define x^b : append-ec (: i 10)  '(1 1 1 1 1 1 1 1) ; initial guess
-define P : make-covariance-matrix-from-standard-deviations : append-ec (: i 10) '(0.5 0.1 0.3 0.1 0.2 0.2 0.2 0.2)
+define x^b : append-ec (: i (length x^seed))  '(1 1 1 1 1 1 1 1) ; initial guess
+define P : make-covariance-matrix-from-standard-deviations : append-ec (: i (length x^seed)) '(0.5 0.1 0.3 0.1 0.2 0.2 0.2 0.2)
 
 ;; Then generate observations
 define y⁰-num 200
diff --git a/wisp-reader.w b/wisp-reader.w
--- a/wisp-reader.w
+++ b/wisp-reader.w
@@ -51,16 +51,17 @@ define wisp-pending-port : make-object-p
 ;   try-pending
 
 
-define wisp-pending-sexps '()
+define wisp-pending-sexps : list
 
 define : read-one-wisp-sexp port env
   define : wisp-scheme-read-chunk-env
-           if : eof-object? : peek-char port
+           cond 
+              : eof-object? : peek-char port
                 read-char port ; return eof: we’re done
-                begin
-                  set! wisp-pending-sexps
-                       append wisp-pending-sexps : wisp-scheme-read-chunk port
-                  try-pending
+              else
+                set! wisp-pending-sexps
+                     append wisp-pending-sexps : wisp-scheme-read-chunk port
+                try-pending
   define : try-pending
     if : null? wisp-pending-sexps
          wisp-scheme-read-chunk-env
@@ -76,7 +77,7 @@ define-language wisp
   . #:compilers `((scheme . ,compile-scheme))
   . #:decompilers `((scheme . ,decompile-scheme))
   . #:evaluator : lambda (x module) : primitive-eval x
-  . #:printer write
+  . #:printer write ; TODO: backtransform to wisp? Use source-properties?
   . #:make-default-environment
   lambda :
     ;; Ideally we'd duplicate the whole module hierarchy so that `set!',