reindent
[bpt/guile.git] / module / language / elisp / runtime / function-slot.scm
index 4121f15..c7de493 100644 (file)
 
 ;;; Equivalence and equalness predicates.
 
-(built-in-func eq (lambda (a b)
-                    (elisp-bool (eq? a b))))
+(built-in-func eq
+  (lambda (a b)
+    (elisp-bool (eq? a b))))
 
-(built-in-func equal (lambda (a b)
-                       (elisp-bool (equal? a b))))
+(built-in-func equal
+  (lambda (a b)
+    (elisp-bool (equal? a b))))
 
 ;;; Number predicates.
 
-(built-in-func floatp (lambda (num)
-                        (elisp-bool (and (real? num)
-                                         (or (inexact? num)
-                                             (prim not (integer? num)))))))
+(built-in-func floatp
+  (lambda (num)
+    (elisp-bool (and (real? num)
+                     (or (inexact? num)
+                         (prim not (integer? num)))))))
 
-(built-in-func integerp (lambda (num)
-                          (elisp-bool (and (exact? num)
-                                           (integer? num)))))
+(built-in-func integerp
+  (lambda (num)
+    (elisp-bool (and (exact? num)
+                     (integer? num)))))
 
-(built-in-func numberp (lambda (num)
-                         (elisp-bool (real? num))))
+(built-in-func numberp
+  (lambda (num)
+    (elisp-bool (real? num))))
 
-(built-in-func wholenump (lambda (num)
-                           (elisp-bool (and (exact? num)
-                                            (integer? num)
-                                            (prim >= num 0)))))
+(built-in-func wholenump
+  (lambda (num)
+    (elisp-bool (and (exact? num)
+                     (integer? num)
+                     (prim >= num 0)))))
 
-(built-in-func zerop (lambda (num)
-                       (elisp-bool (prim = num 0))))
+(built-in-func zerop
+  (lambda (num)
+    (elisp-bool (prim = num 0))))
 
 ;;; Number comparisons.
 
-(built-in-func = (lambda (num1 num2)
-                   (elisp-bool (prim = num1 num2))))
+(built-in-func =
+  (lambda (num1 num2)
+    (elisp-bool (prim = num1 num2))))
 
-(built-in-func /= (lambda (num1 num2)
-                    (elisp-bool (prim not (prim = num1 num2)))))
+(built-in-func /=
+  (lambda (num1 num2)
+    (elisp-bool (prim not (prim = num1 num2)))))
 
-(built-in-func < (lambda (num1 num2)
-                   (elisp-bool (prim < num1 num2))))
+(built-in-func <
+  (lambda (num1 num2)
+    (elisp-bool (prim < num1 num2))))
 
-(built-in-func <= (lambda (num1 num2)
-                    (elisp-bool (prim <= num1 num2))))
+(built-in-func <=
+  (lambda (num1 num2)
+    (elisp-bool (prim <= num1 num2))))
 
-(built-in-func > (lambda (num1 num2)
-                   (elisp-bool (prim > num1 num2))))
+(built-in-func >
+  (lambda (num1 num2)
+    (elisp-bool (prim > num1 num2))))
 
-(built-in-func >= (lambda (num1 num2)
-                    (elisp-bool (prim >= num1 num2))))
+(built-in-func >=
+  (lambda (num1 num2)
+    (elisp-bool (prim >= num1 num2))))
 
-(built-in-func max (lambda (. nums)
-                     (prim apply (@ (guile) max) nums)))
+(built-in-func max
+  (lambda (. nums)
+    (prim apply (@ (guile) max) nums)))
 
-(built-in-func min (lambda (. nums)
-                     (prim apply (@ (guile) min) nums)))
+(built-in-func min
+  (lambda (. nums)
+    (prim apply (@ (guile) min) nums)))
 
-(built-in-func abs (@ (guile) abs))
+(built-in-func abs
+  (@ (guile) abs))
 
 ;;; Number conversion.
 
-(built-in-func float (lambda (num)
-                       (if (exact? num)
-                         (exact->inexact num)
-                         num)))
+(built-in-func float
+  (lambda (num)
+    (if (exact? num)
+        (exact->inexact num)
+        num)))
 
 ;;; TODO: truncate, floor, ceiling, round.
 
 (built-in-func car
   (lambda (el)
     (if (null? el)
-      nil-value
-      (prim car el))))
+        nil-value
+        (prim car el))))
 
 (built-in-func cdr
   (lambda (el)
     (if (null? el)
-      nil-value
-      (prim cdr el))))
+        nil-value
+        (prim cdr el))))
 
 (built-in-func car-safe
   (lambda (el)
     (if (pair? el)
-      (prim car el)
-      nil-value)))
+        (prim car el)
+        nil-value)))
 
 (built-in-func cdr-safe
   (lambda (el)
     (if (pair? el)
-      (prim cdr el)
-      nil-value)))
+        (prim cdr el)
+        nil-value)))
 
 (built-in-func nth
   (lambda (n lst)
     (if (negative? n)
-      (prim car lst)
-      (let iterate ((i n)
-                    (tail lst))
-        (cond
-          ((null? tail) nil-value)
-          ((zero? i) (prim car tail))
-          (else (iterate (prim 1- i) (prim cdr tail))))))))
+        (prim car lst)
+        (let iterate ((i n)
+                      (tail lst))
+          (cond
+           ((null? tail) nil-value)
+           ((zero? i) (prim car tail))
+           (else (iterate (prim 1- i) (prim cdr tail))))))))
 
 (built-in-func nthcdr
   (lambda (n lst)
     (if (negative? n)
-      lst
-      (let iterate ((i n)
-                    (tail lst))
-        (cond
-          ((null? tail) nil-value)
-          ((zero? i) tail)
-          (else (iterate (prim 1- i) (prim cdr tail))))))))
+        lst
+        (let iterate ((i n)
+                      (tail lst))
+          (cond
+           ((null? tail) nil-value)
+           ((zero? i) tail)
+           (else (iterate (prim 1- i) (prim cdr tail))))))))
 
 (built-in-func length (@ (guile) length))
 
 (built-in-func number-sequence
   (lambda (from . rest)
     (if (prim > (prim length rest) 2)
-      (runtime-error "too many arguments for number-sequence"
-                     (prim cdddr rest))
-      (if (null? rest)
-        `(,from)
-        (let ((to (prim car rest))
-              (sep (if (or (null? (prim cdr rest))
-                           (eq? nil-value (prim cadr rest)))
-                     1
-                     (prim cadr rest))))
-          (cond
-            ((or (eq? nil-value to) (prim = to from)) `(,from))
-            ((and (zero? sep) (prim not (prim = from to)))
-             (runtime-error "infinite list in number-sequence"))
-            ((prim < (prim * to sep) (prim * from sep)) '())
-            (else
-              (let iterate ((i (prim +
-                                  from
-                                  (prim * sep
-                                          (prim quotient
-                                            (prim abs (prim - to from))
-                                            (prim abs sep)))))
-                            (result '()))
-                (if (prim = i from)
-                  (prim cons i result)
-                  (iterate (prim - i sep) (prim cons i result)))))))))))
+        (runtime-error "too many arguments for number-sequence"
+                       (prim cdddr rest))
+        (if (null? rest)
+            `(,from)
+            (let ((to (prim car rest))
+                  (sep (if (or (null? (prim cdr rest))
+                               (eq? nil-value (prim cadr rest)))
+                           1
+                           (prim cadr rest))))
+              (cond
+               ((or (eq? nil-value to) (prim = to from)) `(,from))
+               ((and (zero? sep) (prim not (prim = from to)))
+                (runtime-error "infinite list in number-sequence"))
+               ((prim < (prim * to sep) (prim * from sep)) '())
+               (else
+                (let iterate ((i (prim +
+                                       from
+                                       (prim *
+                                             sep
+                                             (prim quotient
+                                                   (prim abs
+                                                         (prim -
+                                                               to
+                                                               from))
+                                                   (prim abs sep)))))
+                              (result '()))
+                  (if (prim = i from)
+                      (prim cons i result)
+                      (iterate (prim - i sep)
+                               (prim cons i result)))))))))))
 
 ;;; Changing lists.
 
 (built-in-func boundp
   (lambda (sym)
     (elisp-bool (prim not
-                  (eq? void (reference-variable value-slot-module sym))))))
+                      (eq? void
+                           (reference-variable value-slot-module
+                                               sym))))))
 
 (built-in-func fboundp
   (lambda (sym)
     (elisp-bool (prim not
-                  (eq? void (reference-variable function-slot-module sym))))))
+                      (eq? void
+                           (reference-variable function-slot-module
+                                               sym))))))
 
 ;;; Function calls. These must take care of special cases, like using
 ;;; symbols or raw lambda-lists as functions!
 (built-in-func apply
   (lambda (func . args)
     (let ((real-func (cond
-                       ((symbol? func)
-                        (reference-variable-with-check function-slot-module
-                                                       func))
-                       ((list? func)
-                        (if (and (prim not (null? func))
-                                 (eq? (prim car func) 'lambda))
-                          (compile func #:from 'elisp #:to 'value)
-                          (runtime-error "list is not a function" func)))
-                       (else func))))
+                      ((symbol? func)
+                       (reference-variable-with-check
+                        function-slot-module
+                        func))
+                      ((list? func)
+                       (if (and (prim not (null? func))
+                                (eq? (prim car func) 'lambda))
+                           (compile func #:from 'elisp #:to 'value)
+                           (runtime-error "list is not a function"
+                                          func)))
+                      (else func))))
       (prim apply (@ (guile) apply) real-func args))))
 
 (built-in-func funcall