vendor/src/sequence.wisp in ruby-wisp-source-0.7.0 vs vendor/src/sequence.wisp in ruby-wisp-source-0.8.0
- old
+ new
@@ -1,8 +1,8 @@
(ns wisp.sequence
- (:use [wisp.runtime :only [nil? vector? fn? number? string? dictionary?
- key-values str dec inc merge]]))
+ (:require [wisp.runtime :refer [nil? vector? fn? number? string? dictionary?
+ key-values str dec inc merge dictionary]]))
;; Implementation of list
(defn- List
"List type"
@@ -345,9 +345,17 @@
(nil? sequence) (apply list (reverse items))
(or (list? sequence)
(lazy-seq?)) (conj-list sequence items)
(dictionary? sequence) (merge sequence (apply merge items))
:else (throw (TypeError (str "Type can't be conjoined " sequence)))))
+
+(defn assoc
+ [source & key-values]
+ ;(assert (even? (count key-values)) "Wrong number of arguments")
+ ;(assert (and (not (seq? source))
+ ; (not (vector? source))
+ ; (object? source)) "Can only assoc on dictionaries")
+ (conj source (apply dictionary key-values)))
(defn concat
"Returns list representing the concatenation of the elements in the
supplied lists."
[& sequences]