> 2. "each=" and "all-true" are gone, replaced by the new macro "are",
> which works with any predicate:
> (are =
> 2 (+ 1 1)
> 4 (+ 2 2))
>
> -Stuart Sierra
Hello and thanks for additions!
Happy to see additions and work done on tests :-)
I just wonder - how do you define "all-true" using "are"? Since "are"
always makes pairs for predicate, it might not be possible.
(defn logically-true? [x]
(if x true false))
(are logically-true?
43
"abc"
true
(not false)
(not nil))
My guess: Fails because logically-true? accepts only 1 argument and (not
nil) never gets tested even if predicate accepts 2 arguments ("are"
doesn't test for odd number of params).
Possible solution: Add another number-of-arguments parameter to "are":
(are 2 =
(+ 1 2) 3
(+ 1 -1) 0 )
(are 1 logically-true?
43
"abc"
true
(not false)
(not nil))
Also [syntactic sugar]:
(are 1 pred? ...) could be (are-all pred? ...)
(are 2 pred? ...) could be (are-pairs pred? ...)
Thanks for considering these ideas, Frantisek
PS: Still writing tests - latest are 'and', 'or', 'first', 'rest',
'ffirst'.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---