impc:ti:complex-type?   scheme


Defined in:  https://github.com/digego/extempore/tree/v0.8.9/runtime/llvmti.xtm

Implementation

;; is 't' a complex type?
(define impc:ti:complex-type?
  (lambda (t)
    (if (and (atom? t)
             (not (string? t)))
        #f
        (if (string? t) #t
            (if (and (number? (car t))           ;; if list starts with a number (i.e. not a symbol)
                     (<> (car t) *impc:ir:void*) ;; if not void
                     ;; if proper complex type (tuple,array,closure)
                     (member (modulo (car t) *impc:ir:pointer*)
                             (list *impc:ir:tuple* *impc:ir:array* *impc:ir:vector* *impc:ir:closure*)))
                #t
                #f)))))


Back to Index

Similar Entries