Liking cljdoc? Tell your friends :D

hara.function.base.executive


+invoke-args-number+clj


create-executive-formclj

(create-executive-form name fields settings body)

creates the form for defexecutive

(create-executive-form '-EXE- '[name place date] {:type 'deftype :tag "hello" :invoke 'hello-invoke :display 'hello-display :print 'hello-print :args-number 3} []) => '[(deftype -EXE- [name place date] java.lang.Object (toString [hello] (clojure.core/str "#" "hello" (hello-display hello)))

   clojure.lang.IFn
   (invoke [hello] (hello-invoke hello))
   (invoke [hello a0] (hello-invoke hello a0))
   (invoke [hello a0 a1] (hello-invoke hello a0 a1))
   (applyTo [hello args] (clojure.core/apply hello-invoke hello args)))
 
 (clojure.core/defmethod clojure.core/print-method (clojure.core/resolve (quote -EXE-))
   [hello writer]
   (.write writer (clojure.core/str (hello-print hello))))]
creates the form for defexecutive

(create-executive-form '-EXE-
                       '[name place date]
                       {:type 'deftype
                        :tag "hello"
                        :invoke   'hello-invoke
                        :display  'hello-display
                        :print    'hello-print
                        :args-number 3}
                      [])
=> '[(deftype -EXE- [name place date]
       java.lang.Object
       (toString [hello]
         (clojure.core/str "#" "hello" (hello-display hello)))
       
       clojure.lang.IFn
       (invoke [hello] (hello-invoke hello))
       (invoke [hello a0] (hello-invoke hello a0))
       (invoke [hello a0 a1] (hello-invoke hello a0 a1))
       (applyTo [hello args] (clojure.core/apply hello-invoke hello args)))
     
     (clojure.core/defmethod clojure.core/print-method (clojure.core/resolve (quote -EXE-))
       [hello writer]
       (.write writer (clojure.core/str (hello-print hello))))]
raw docstring

create-invoke-formclj

(create-invoke-form method this n)

creates an invoke form given params

(create-invoke-form '-hello- 'obj 3) => '(invoke [obj a0 a1 a2] (-hello- obj a0 a1 a2))

creates an invoke form given params

(create-invoke-form '-hello- 'obj 3)
=> '(invoke [obj a0 a1 a2] (-hello- obj a0 a1 a2))
raw docstring

create-print-formclj

(create-print-form this name print)

defexecutivecljmacro

(defexecutive name doc? attrs? & [fields settings & body])

creates an executable data type

(declare hello-display hello-print)

(def hello-invoke (fn [this & args] (str (.name this) " " (apply + args))))

(defexecutive -Hello- [name place date] {:tag "hello" :invoke hello-invoke :display hello-display :print hello-print})

((-Hello-. "hello" nil nil) 1 2 3 4 5) => "hello 15"

creates an executable data type

(declare hello-display hello-print)

(def hello-invoke (fn [this & args]
                    (str (.name this) " " (apply + args))))

(defexecutive -Hello- [name place date]
  {:tag "hello"
   :invoke   hello-invoke
   :display  hello-display
   :print    hello-print})

((-Hello-. "hello" nil nil) 1 2 3 4 5)
=> "hello 15"
raw docstring

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close