On Monday, May 23, 2016 at 8:10:47 PM UTC-5, Phil Virgo wrote:
>
> I just starting to try and teach myself Clojure.  Kindly let me know if 
> there is a more appropriate place I should post simple questions.
>

This is fine! You might also enjoy the #beginners room on the 
http://clojurians.net/ Slack for live chat. 

>
>
> (def s '(1 1 1 4 99) 
>
> (take-while  #(= (first s) %) s)  ; works fine: (1 1 1)
>
> (take-while  #(= (first %) %) s)  ; IllegalArgumentException Don't know 
> how to create ISeq from: java.lang.Long  clojure.lang.RT.seqFrom 
> (RT.java:505)
>

The anon function here is being invoked on the first value, which is 1 so 
that function becomes:

#(= (first 1) 1)

And the error is that (first 1) is being passed a number rather than 
something seqable. 
 

>
> It appears as though "%" cannot be used within a nested function
>

Nope, that's fine. (Although you can't nest one anonymous function inside 
another as then it would be ambiguous what % refers to.)
 

> - but this works 
>
> (#(prn (+ 3 %) % ) 5) ; works fine:  8 5
>

here this turns into:

#(prn (+ 3 5) 5) 

which is fine.

Hope that helps!
 

>
> Does anyone know what is the rule of statement construction being violated?
>
> ~thanks
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to