On Dec 15, 1:23 pm, Baishampayan Ghose <[email protected]> wrote:
> PS - If you are worried about "compile time type checking", I think it's
> prudent to mention now that Clojure is a dynamically typed programming
> language where types are checked at run-time and not compile time.

Actually, there are Common Lisp compilers (like SBCL) which signal a
warning if they infer a type error. I think it's handy, and doesn't do
anything drastic like refuse to compile your program because of it.


All the best,
Tayssir


On Dec 15, 1:23 pm, Baishampayan Ghose <[email protected]> wrote:
> Ajay,
>
> > It tried the following in REPL and got no error. Personally, I feel that
> > I should get an error because calling square on strings is wrong in both
> > cases.
>
> > Is there a way out of this in Clojure?
>
> > |(defn square[n]  (*  n n))
>
> > (if  (=  0  0)  (println"hello")  (map square["a"  "b"]))
>
> What did you expect from Clojure? In the above form the `map` is a part
> of the else form and that's why it's not executed.
>
> If you don't know already, the syntax for `if` in Clojure is like this -
>
> (if expression
>    (then form)
>    (else form))
>
> If you have multiple then or else forms, you can wrap them inside a `do`
> form like this -
>
> (if expression
>    (do
>      (then form)
>      (more then form))
>    (else form))
>
> > The following gives error (because it gets evaluated):
>
> > |(defn square[n]  (*  n n))
>
> > (if  (=  0  1)  (println"hello")  (map square["a"  "b"]))
>
> In the above form, the map is a part of the else form and since 1 is not
> equal to 0, the `map` is executed.
>
> I hope your confusion is cleared.
>
> PS - If you are worried about "compile time type checking", I think it's
> prudent to mention now that Clojure is a dynamically typed programming
> language where types are checked at run-time and not compile time.
>
> Regards,
> BG
>
> --
> Baishampayan Ghose <[email protected]>
> oCricket.com

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your 
first post.
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

Reply via email to