Colin, many thanks. Issue created:
https://github.com/cgrand/sjacket/issues/19
On Wednesday, June 18, 2014 4:08:53 AM UTC+10, Colin Jones wrote:
> Yeah the latter version parses as 2 symbols in sjacket, whereas the defn
> version parses as a single list.
>
> user=> (p/parser "top%")
> #net.cgrand.parsley.Node{:tag :net.cgrand.sjacket.parser/root, :content
> [#net.cgrand.parsley.Node{:tag :symbol, :content
> [#net.cgrand.parsley.Node{:tag :name, :content ["top"]}]}
> #net.cgrand.parsley.Node{:tag :symbol, :content
> [#net.cgrand.parsley.Node{:tag :name, :content ["%"]}]}]}
>
> REPLy uses sjacket to split input expressions and send them each off to
> nREPL in sequence, IIRC so that you get all results back from stuff like:
>
> user=> 1 2 3
> 1
> 2
> 3
>
> So it treats the "top%" input basically the same as if there were
> intervening whitespace, like "top %".
>
> From http://clojure.org/reader:
> -----
> Symbols begin with a non-numeric character and can contain alphanumeric
> characters and *, +, !, -, _, and ? (other characters will be allowed
> eventually, but not all macro characters have been determined). '/' has
> special meaning, it can be used once in the middle of a symbol to separate
> the namespace from the name, e.g. my-namespace/foo. '/' by itself names the
> division function. '.' has special meaning - it can be used one or more
> times in the middle of a symbol to designate a fully-qualified class name,
> e.g. java.util.BitSet, or in namespace names. Symbols beginning or ending
> with '.' are reserved by Clojure. Symbols containing / or . are said to be
> 'qualified'. Symbols beginning or ending with ':' are reserved by Clojure.
> A symbol can contain one or more non-repeating ':'s.
> -----
>
> So it looks to me like that function name is illegal, and it's an
> implementation detail that it currently is allowed to work.
>
> Usually parsing fixes for lein repl belong in sjacket (
> https://github.com/cgrand/sjacket/issues), but I'm not 100% convinced the
> parser should say top% is a legitimate symbol. But I'm also not convinced
> it should ever be possible for 2 symbols to be right next to each other
> with no intervening whitespace. Not sure what the right thing to do is
> here. Let's discuss further in an issue on sjacket.
>
> Short-term workaround: `(do top%)`.
>
>
> On Tuesday, June 17, 2014 9:54:25 AM UTC-5, daveray wrote:
>>
>> I believe this is a problem with the Leiningen REPL. It works fine from
>> the built-in REPL:
>>
>> $ java -jar ~/.m2/repository/org/clojure/clojure/1.5.1/clojure-1.5.1.jar
>> Clojure 1.5.1
>> user=> (def top% 4)
>> #'user/top%
>> user=> top%
>> 4
>>
>> Dave
>>
>>
>>
>>
>> On Tue, Jun 17, 2014 at 1:32 AM, Mike Thompson <[email protected]>
>> wrote:
>>
>>> At the REPL ...
>>>
>>>
>>> user=> (def top% 4) ;; an unusually named var
>>> #'user/top%
>>>
>>> But later, it I try to use this var, trouble ...
>>>
>>> user=> top%
>>>
>>> CompilerException java.lang.RuntimeException: Unable to resolve symbol:
>>> top in this context,
>>> compiling:(Local\Temp\form-init6773082655831127234.clj:1:734)
>>> CompilerException java.lang.RuntimeException: Unable to resolve symbol:
>>> % in this context,
>>> compiling:(Local\Temp\form-init6773082655831127234.clj:1:734)
>>>
>>>
>>> Not sure what to make if this. Obviously % is a bit special. And it is
>>> certainly not a significant problem for me, at all. Just seemed odd that
>>> I'm allowed to successfully do the def, if it is just going to cause
>>> problems later.
>>>
>>> --
>>>
>>> Mike
>>>
>>>
>>>
>>>
>>>
>>> --
>>> 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
>>> ---
>>> 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 [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
On Wednesday, June 18, 2014 4:08:53 AM UTC+10, Colin Jones wrote:
>
> Yeah the latter version parses as 2 symbols in sjacket, whereas the defn
> version parses as a single list.
>
> user=> (p/parser "top%")
> #net.cgrand.parsley.Node{:tag :net.cgrand.sjacket.parser/root, :content
> [#net.cgrand.parsley.Node{:tag :symbol, :content
> [#net.cgrand.parsley.Node{:tag :name, :content ["top"]}]}
> #net.cgrand.parsley.Node{:tag :symbol, :content
> [#net.cgrand.parsley.Node{:tag :name, :content ["%"]}]}]}
>
> REPLy uses sjacket to split input expressions and send them each off to
> nREPL in sequence, IIRC so that you get all results back from stuff like:
>
> user=> 1 2 3
> 1
> 2
> 3
>
> So it treats the "top%" input basically the same as if there were
> intervening whitespace, like "top %".
>
> From http://clojure.org/reader:
> -----
> Symbols begin with a non-numeric character and can contain alphanumeric
> characters and *, +, !, -, _, and ? (other characters will be allowed
> eventually, but not all macro characters have been determined). '/' has
> special meaning, it can be used once in the middle of a symbol to separate
> the namespace from the name, e.g. my-namespace/foo. '/' by itself names the
> division function. '.' has special meaning - it can be used one or more
> times in the middle of a symbol to designate a fully-qualified class name,
> e.g. java.util.BitSet, or in namespace names. Symbols beginning or ending
> with '.' are reserved by Clojure. Symbols containing / or . are said to be
> 'qualified'. Symbols beginning or ending with ':' are reserved by Clojure.
> A symbol can contain one or more non-repeating ':'s.
> -----
>
> So it looks to me like that function name is illegal, and it's an
> implementation detail that it currently is allowed to work.
>
> Usually parsing fixes for lein repl belong in sjacket (
> https://github.com/cgrand/sjacket/issues), but I'm not 100% convinced the
> parser should say top% is a legitimate symbol. But I'm also not convinced
> it should ever be possible for 2 symbols to be right next to each other
> with no intervening whitespace. Not sure what the right thing to do is
> here. Let's discuss further in an issue on sjacket.
>
> Short-term workaround: `(do top%)`.
>
>
> On Tuesday, June 17, 2014 9:54:25 AM UTC-5, daveray wrote:
>>
>> I believe this is a problem with the Leiningen REPL. It works fine from
>> the built-in REPL:
>>
>> $ java -jar ~/.m2/repository/org/clojure/clojure/1.5.1/clojure-1.5.1.jar
>> Clojure 1.5.1
>> user=> (def top% 4)
>> #'user/top%
>> user=> top%
>> 4
>>
>> Dave
>>
>>
>>
>>
>> On Tue, Jun 17, 2014 at 1:32 AM, Mike Thompson <[email protected]>
>> wrote:
>>
>>> At the REPL ...
>>>
>>>
>>> user=> (def top% 4) ;; an unusually named var
>>> #'user/top%
>>>
>>> But later, it I try to use this var, trouble ...
>>>
>>> user=> top%
>>>
>>> CompilerException java.lang.RuntimeException: Unable to resolve symbol:
>>> top in this context,
>>> compiling:(Local\Temp\form-init6773082655831127234.clj:1:734)
>>> CompilerException java.lang.RuntimeException: Unable to resolve symbol:
>>> % in this context,
>>> compiling:(Local\Temp\form-init6773082655831127234.clj:1:734)
>>>
>>>
>>> Not sure what to make if this. Obviously % is a bit special. And it is
>>> certainly not a significant problem for me, at all. Just seemed odd that
>>> I'm allowed to successfully do the def, if it is just going to cause
>>> problems later.
>>>
>>> --
>>>
>>> Mike
>>>
>>>
>>>
>>>
>>>
>>> --
>>> 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
>>> ---
>>> 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 [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
On Wednesday, June 18, 2014 4:08:53 AM UTC+10, Colin Jones wrote:
>
> Yeah the latter version parses as 2 symbols in sjacket, whereas the defn
> version parses as a single list.
>
> user=> (p/parser "top%")
> #net.cgrand.parsley.Node{:tag :net.cgrand.sjacket.parser/root, :content
> [#net.cgrand.parsley.Node{:tag :symbol, :content
> [#net.cgrand.parsley.Node{:tag :name, :content ["top"]}]}
> #net.cgrand.parsley.Node{:tag :symbol, :content
> [#net.cgrand.parsley.Node{:tag :name, :content ["%"]}]}]}
>
> REPLy uses sjacket to split input expressions and send them each off to
> nREPL in sequence, IIRC so that you get all results back from stuff like:
>
> user=> 1 2 3
> 1
> 2
> 3
>
> So it treats the "top%" input basically the same as if there were
> intervening whitespace, like "top %".
>
> From http://clojure.org/reader:
> -----
> Symbols begin with a non-numeric character and can contain alphanumeric
> characters and *, +, !, -, _, and ? (other characters will be allowed
> eventually, but not all macro characters have been determined). '/' has
> special meaning, it can be used once in the middle of a symbol to separate
> the namespace from the name, e.g. my-namespace/foo. '/' by itself names the
> division function. '.' has special meaning - it can be used one or more
> times in the middle of a symbol to designate a fully-qualified class name,
> e.g. java.util.BitSet, or in namespace names. Symbols beginning or ending
> with '.' are reserved by Clojure. Symbols containing / or . are said to be
> 'qualified'. Symbols beginning or ending with ':' are reserved by Clojure.
> A symbol can contain one or more non-repeating ':'s.
> -----
>
> So it looks to me like that function name is illegal, and it's an
> implementation detail that it currently is allowed to work.
>
> Usually parsing fixes for lein repl belong in sjacket (
> https://github.com/cgrand/sjacket/issues), but I'm not 100% convinced the
> parser should say top% is a legitimate symbol. But I'm also not convinced
> it should ever be possible for 2 symbols to be right next to each other
> with no intervening whitespace. Not sure what the right thing to do is
> here. Let's discuss further in an issue on sjacket.
>
> Short-term workaround: `(do top%)`.
>
>
> On Tuesday, June 17, 2014 9:54:25 AM UTC-5, daveray wrote:
>>
>> I believe this is a problem with the Leiningen REPL. It works fine from
>> the built-in REPL:
>>
>> $ java -jar ~/.m2/repository/org/clojure/clojure/1.5.1/clojure-1.5.1.jar
>> Clojure 1.5.1
>> user=> (def top% 4)
>> #'user/top%
>> user=> top%
>> 4
>>
>> Dave
>>
>>
>>
>>
>> On Tue, Jun 17, 2014 at 1:32 AM, Mike Thompson <[email protected]>
>> wrote:
>>
>>> At the REPL ...
>>>
>>>
>>> user=> (def top% 4) ;; an unusually named var
>>> #'user/top%
>>>
>>> But later, it I try to use this var, trouble ...
>>>
>>> user=> top%
>>>
>>> CompilerException java.lang.RuntimeException: Unable to resolve symbol:
>>> top in this context,
>>> compiling:(Local\Temp\form-init6773082655831127234.clj:1:734)
>>> CompilerException java.lang.RuntimeException: Unable to resolve symbol:
>>> % in this context,
>>> compiling:(Local\Temp\form-init6773082655831127234.clj:1:734)
>>>
>>>
>>> Not sure what to make if this. Obviously % is a bit special. And it is
>>> certainly not a significant problem for me, at all. Just seemed odd that
>>> I'm allowed to successfully do the def, if it is just going to cause
>>> problems later.
>>>
>>> --
>>>
>>> Mike
>>>
>>>
>>>
>>>
>>>
>>> --
>>> 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
>>> ---
>>> 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 [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
--
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
---
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 [email protected].
For more options, visit https://groups.google.com/d/optout.