rlm@0: (ns rlm.light-base rlm@0: {:author "Robert McIntyre"} rlm@0: (:refer-clojure :only []) rlm@0: (:require [rlm [ns-rlm]])) rlm@0: rlm@0: rlm@0: rlm@0: ;;We start with absolutely nothing and build from there rlm@0: (rlm.ns-rlm/ns-clear) ;; all we have is [def if ns in-ns]. rlm@0: rlm@0: rlm@0: (clojure.core/use rlm@0: :reload rlm@0: '[clojure rlm@0: [core rlm@0: :only rlm@0: [ rlm@0: ;; object stuff rlm@0: extend-type rlm@0: rlm@0: rlm@0: *command-line-args* *err* *out* *warn-on-reflection* val name read-line rlm@0: ;;REPL rlm@0: find-doc doc print-doc print-namespace-doc rlm@0: ;;Regexes rlm@0: re-pattern re-matcher re-groups re-seq re-matches re-find rlm@0: ;; Unsorted rlm@0: meta type with-meta vary-meta defmacro str let binding with-bindings bound-fn bound-fn* eval rlm@0: time macroexpand-1 macroexpand destructure comment test rand rand-int subs hash rlm@0: definline alter-var-root format printf defonce refer-clojure gen-class load letfn rlm@0: gen-interface definterface reify munge defrecord deftype extenders defprotocol rlm@0: extend extend-protocol slurp clojure-version char assert read rlm@0: ;; Printing rlm@0: print-method print-dup newline flush print println prn with-in-str with-out-str rlm@0: print-str println-str *print-length* *print-level* print-ctor primitives-classnames rlm@0: ;;Agents rlm@0: agent send send-off release-pending-sends rlm@0: add-watch remove-watch agent-error restart-agent set-error-handler! error-handler rlm@0: set-error-mode! error-mode shutdown-agents rlm@0: ;;Ref rlm@0: ref deref rlm@0: ;;Atom rlm@0: atom swap! compare-and-set! reset! set-validator! get-validator alter-meta! rlm@0: reset-meta! commute alter ref-set ref-history-count ref-min-history ref-max-history rlm@0: ensure sync dosync rlm@0: ;;MultiMethods rlm@0: defmulti defmethod remove-all-methods remove-method prefer-method rlm@0: methods get-method prefers rlm@0: ;;Numerics rlm@0: inc dec rem quot rationalize mod numerator denominator rlm@0: ;;Bits rlm@0: bit-and bit-or bit-xor bit-and-not bit-clear bit-set rlm@0: bit-flip bit-test bit-shift-left bit-shift-right rlm@0: ;; Logic rlm@0: not = rlm@0: ;; Creation rlm@0: symbol gensym keyword int declare num long float double short byte boolean rlm@0: bigint bigdec transient persistent! assoc! rlm@0: ;; Lists rlm@0: list list* rest next cons first second last butlast rlm@0: ;; Maps rlm@0: hash-map sorted-map sorted-map-by find select-keys keys vals rlm@0: merge merge-with zipmap create-struct defstruct struct-map struct get-in rlm@0: assoc-in update-in map-indexed key rlm@0: ;; Sets rlm@0: set sorted-set sorted-set-by disj split-at split-with rlm@0: ;; Vectors rlm@0: vector vec subvec vector-of rlm@0: ;; Arrays rlm@0: to-array into-array alength aclone aget aset aset-int aset-long rlm@0: aset-boolean aset-float aset-double aset-short aset-long aset-byte aset-char rlm@0: aset-int make-array to-array-2d amap areduce boolean-array byte-array char-array rlm@0: short-array double-array object-array int-array long-array booleans chars rlm@0: shorts floats ints doubles longs partition-all rlm@0: ;; Seqs rlm@0: lazy-seq nth rseq reverse concat peek pop sequence every? not-every? some rlm@0: not-any? take take-while drop drop-last take-last drop-while cycle repeat rlm@0: replicate iterate range line-seq sort sort-by partition doseq dorun doall rlm@0: take-nth interleave lazy-cat tree-seq file-seq xml-seq distinct rlm@0: replace subseq rsubseq interpose seque not-empty flatten group-by count rlm@0: partition-by frequencies shuffle rlm@0: ;; Functions rlm@0: fn defn defn- apply complement constantly identity comp juxt partial repeatedly rlm@0: trampoline memoize pmap pcalls pvalues fnil rlm@0: ;; List Comprehensions rlm@0: reduce reductions map mapcat filter remove keep keep-indexed for rlm@0: ;; Predicates rlm@0: instance? seq? char? string? map? vector? nil? rlm@0: false? true? symbol? keyword? delay? future? future-done? rlm@0: even? odd? contains? number? integer? ratio? decimal? reversible? rlm@0: float? rational? special-symbol? var? class? bound? thread-bound? counted? rlm@0: distinct? empty? coll? list? set? ifn? fn? associative? sequential? sorted? rlm@0: extends? satisfies? future-cancelled? rlm@0: comparator rlm@0: ;; Comparason rlm@0: compare not= identical? == rlm@0: ;; Control Flow rlm@0: when when-not cond delay force if-not and or locking -> ->> while case rlm@0: if-let when-let dotimes await await-for with-open doto loop condp future-call rlm@0: future future-cancel promise deliver rlm@0: ;;Namespaces rlm@0: create-ns find-ns remove-ns all-ns the-ns ns-name ns-map ns-unmap ns-publics rlm@0: ns-imports ns-interns refer ns-refers alias ns-aliases ns-unalias ns-resolve rlm@0: resolve ns require use loaded-libs compile intern namespace-munge rlm@0: ;; Java rlm@0: .. import class enumeration-seq rlm@0: ;;Objects rlm@0: bases make-hierarchy supers isa? parents ancestors descendants derive underive rlm@0: ;; Symbols rlm@0: *ns* *1 *2 *3 *e *compile-path* rlm@0: ;; Proxies rlm@0: get-proxy-class construct-proxy init-proxy update-proxy proxy-mappings proxy rlm@0: proxy-super bean rlm@0: ;; Vars rlm@0: var-get rlm@0: rlm@0: ]]] rlm@0: rlm@0: rlm@0: '[rlm rlm@0: [function-utils :only [mix defmix runonce]] rlm@0: [rlm-commands :only [undef ns-reset ns-nuke reload keymap-clojure keymap-normal rlm]] rlm@0: [ns-rlm :only [ns-clear ns-clone ls]] rlm@0: [play-all :only [play-all-music]] rlm@0: [shell-inspect :only [command-line?]] rlm@0: [shell-write :only [sw]] rlm@0: [classpath-utils :only [classpath add-to-classpath]] rlm@0: [dreams :only [megadef megaundef silence]] rlm@0: [map-utils :only [map-keys map-vals filter-keys filter-vals]] rlm@0: [decorators :only [preserve-meta]] rlm@0: [visualize :only [visual]] rlm@0: [identify :only [identify]] rlm@0: [push :only [push-gen push]] rlm@0: ] rlm@0: '[coderloop rlm@0: [utils :only [read-integer read-big-integer read-integers trans-print digits]] rlm@0: [export-files :only [export-archive]]] rlm@0: rlm@0: '[sunil rlm@0: [curry :only [decorate curry defn-decorated]]] rlm@0: rlm@0: '[clojure.contrib rlm@0: [import-static :only [import-static]] rlm@0: [combinatorics :only [cartesian-product subsets selections rlm@0: permutations lex-permutations combinations]] rlm@0: [duck-streams :only [file-str read-lines]] rlm@0: [str-utils :only [re-split re-gsub str-join]] rlm@0: [seq :only [separate indexed rotations find-first positions]] rlm@0: [math :only [expt round gcd lcm floor ceil]] rlm@0: [repl-utils :only [show expression-info]] rlm@0: [def :only [defn-memo defvar defmacro-]] rlm@0: rlm@0: rlm@0: ] rlm@0: rlm@0: '[clojure.contrib.generic rlm@0: [arithmetic :only [+ - / *]] rlm@0: [collection :only [assoc conj dissoc get empty into seq]] rlm@0: [comparison :only [pos? neg? zero? > < <= >= max min]] rlm@0: [math-functions :only rlm@0: [sqr approx= conjugate sgn acos asin atan atan2 rlm@0: cos exp log pow rint sin tan]] rlm@0: [functor :only [fmap]]] rlm@0: rlm@0: '[matchure :only [fn-match defn-match if-match when-match cond-match]] rlm@0: rlm@0: rlm@0: ;; '[letd :only [with-separator display-local-bindings letd]] rlm@0: rlm@0: '[clojure rlm@0: [repl :only [source]]] rlm@0: rlm@0: '[clojure.java rlm@0: [javadoc :only [javadoc add-local-javadoc]]] rlm@0: rlm@0: ) rlm@0: rlm@0: ;;java stuff rlm@0: rlm@0: (import '[java.lang ProcessBuilder Enum SuppressWarnings Throwable rlm@0: InterruptedException Thread$UncaughtExceptionHandler RuntimeException rlm@0: Thread$State ArrayIndexOutOfBoundsException IllegalAccessError Process rlm@0: SecurityException InstantiationException ThreadGroup System rlm@0: EnumConstantNotPresentException OutOfMemoryError Double Package rlm@0: ExceptionInInitializerError RuntimePermission UnknownError rlm@0: IncompatibleClassChangeError rlm@0: ArithmeticException StackTraceElement NoSuchFieldError InternalError Thread rlm@0: SecurityManager Cloneable NegativeArraySizeException StringBuilder Appendable rlm@0: Byte Math Exception IllegalAccessException ClassNotFoundException rlm@0: UnsatisfiedLinkError rlm@0: IllegalArgumentException AssertionError Short StrictMath ClassCircularityError rlm@0: NoSuchFieldException Comparable Readable UnsupportedClassVersionError rlm@0: IllegalThreadStateException Iterable Object VirtualMachineError rlm@0: InheritableThreadLocal rlm@0: ThreadLocal ClassLoader CloneNotSupportedException TypeNotPresentException rlm@0: Void rlm@0: Character NoClassDefFoundError IllegalStateException LinkageError Boolean rlm@0: String rlm@0: InstantiationError Float Runnable IndexOutOfBoundsException ClassFormatError rlm@0: NullPointerException NoSuchMethodError ClassCastException Class rlm@0: StringIndexOutOfBoundsException Override ThreadDeath CharSequence Number rlm@0: IllegalMonitorStateException Error NumberFormatException VerifyError rlm@0: StringBuffer rlm@0: NoSuchMethodException Long ArrayStoreException UnsupportedOperationException rlm@0: Integer rlm@0: Deprecated StackOverflowError AbstractMethodError Runtime] rlm@0: '[java.math BigDecimal BigInteger] rlm@0: 'java.util.concurrent.Callable rlm@0: 'clojure.lang.Compiler rlm@0: ) rlm@0: rlm@0: ;; jme3 stuff rlm@0: rlm@0: (set! clojure.core/*print-length* 20) rlm@0: rlm@0: (clojure.java.javadoc/add-local-javadoc "/home/r/mobius/temp-clj/javadoc") rlm@0: rlm@0: rlm@0: (clojure.java.javadoc/add-local-javadoc "/home/r/roBin/jdk6-docs/docs/api") rlm@0: (clojure.java.javadoc/add-local-javadoc rlm@0: "/home/r/roBin/lpsolve-doc/lpsolve.sourceforge.net/5.5/Java/docs/api") rlm@0: rlm@0: rlm@0: (defmethod / [java.lang.Number java.lang.Number] rlm@0: [x y] (clojure.core// x y)) rlm@0: rlm@0: (defmethod - [java.lang.Number java.lang.Number] rlm@0: [x y] (clojure.core/- x y)) rlm@0: rlm@0: (import-static java.lang.Math PI E) rlm@0: rlm@0: rlm@0: rlm@0: rlm@0: rlm@0: rlm@0: rlm@0: rlm@0: rlm@0: rlm@0: rlm@0: rlm@0: