Accessing Record fields with keywords in ClojureScript not working as in Clojure

2020-08-04 Thread 'clartaq' via Clojure
I originally posted 

 
this on StackOverflow.

When I try this:

```clojure
(defrecord Attr [has-default default])
(def attr (->Attr true 1))
(get attr :default) ;;=> 1
(:default attr) ;;=> ClojureScript returns nil, Clojure returns 1
```

Is the difference in behavior when using keyword access expected? I 
couldn't find anything about it in the [docs][1]  on the differences 
between Clojure and ClojureScript.

**Update 2020-08-04**

Well, this is getting weird. This morning, if I open a REPL with 
figwheel-main, or from CIDER, it sometimes works as expected -- `(:default 
attr)` returns 1.

If I try it by opening the ClojureScript REPL using `clj`, it is still 
broken.

```clojure
% clj --main cljs.main --repl
ClojureScript 1.10.773
cljs.user=> (defrecord Attr [has-default defaut])
cljs.user/Attr
cljs.user=> (def attr (->Attr true 1))
#'cljs.user/attr
cljs.user=> (get attr :default)
nil
cljs.user=> (:default attr)
nil
cljs.user=> (:has-default attr)
true
cljs.user=> (println "attr: " attr)
attr:  #cljs.user.Attr{:has-default true, :defaut 1}
nil
```


  [1]: https://www.clojurescript.org/about/differences#_data_structures

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/5dd44871-3915-4d80-a959-28be44c8cc32o%40googlegroups.com.


Re: Accessing Record fields with keywords in ClojureScript not working as in Clojure

2020-08-04 Thread Mark Engelberg
You misspelled default in your defrecord.

On Tue, Aug 4, 2020 at 7:42 AM 'clartaq' via Clojure <
clojure@googlegroups.com> wrote:

> I originally posted
> 
> this on StackOverflow.
>
> When I try this:
>
> ```clojure
> (defrecord Attr [has-default default])
> (def attr (->Attr true 1))
> (get attr :default) ;;=> 1
> (:default attr) ;;=> ClojureScript returns nil, Clojure returns 1
> ```
>
> Is the difference in behavior when using keyword access expected? I
> couldn't find anything about it in the [docs][1]  on the differences
> between Clojure and ClojureScript.
>
> **Update 2020-08-04**
>
> Well, this is getting weird. This morning, if I open a REPL with
> figwheel-main, or from CIDER, it sometimes works as expected -- `(:default
> attr)` returns 1.
>
> If I try it by opening the ClojureScript REPL using `clj`, it is still
> broken.
>
> ```clojure
> % clj --main cljs.main --repl
> ClojureScript 1.10.773
> cljs.user=> (defrecord Attr [has-default defaut])
> cljs.user/Attr
> cljs.user=> (def attr (->Attr true 1))
> #'cljs.user/attr
> cljs.user=> (get attr :default)
> nil
> cljs.user=> (:default attr)
> nil
> cljs.user=> (:has-default attr)
> true
> cljs.user=> (println "attr: " attr)
> attr:  #cljs.user.Attr{:has-default true, :defaut 1}
> nil
> ```
>
>
>   [1]: https://www.clojurescript.org/about/differences#_data_structures
>
> --
> 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.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/clojure/5dd44871-3915-4d80-a959-28be44c8cc32o%40googlegroups.com
> 
> .
>

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/CAORbMON7N3ukBEn%3D%3DzX8pAz3tJg%2BjX32x4TTDDqYdCxbWDswbA%40mail.gmail.com.


Re: Accessing Record fields with keywords in ClojureScript not working as in Clojure

2020-08-04 Thread Justin Smith
I don't think this is true, or if true is incidental to the real problem

% cljs
ClojureScript 1.10.758
cljs.user=> (defrecord Attr [has-default default])
cljs.user/Attr
cljs.user=> (get (->Attr true 1) :default)
1
cljs.user=> (:default (->Attr true 1))
nil
cljs.user=>

On Tue, Aug 4, 2020 at 11:53 AM Mark Engelberg  wrote:
>
> You misspelled default in your defrecord.
>
> On Tue, Aug 4, 2020 at 7:42 AM 'clartaq' via Clojure 
>  wrote:
>>
>> I originally posted this on StackOverflow.
>>
>> When I try this:
>>
>> ```clojure
>> (defrecord Attr [has-default default])
>> (def attr (->Attr true 1))
>> (get attr :default) ;;=> 1
>> (:default attr) ;;=> ClojureScript returns nil, Clojure returns 1
>> ```
>>
>> Is the difference in behavior when using keyword access expected? I couldn't 
>> find anything about it in the [docs][1]  on the differences between Clojure 
>> and ClojureScript.
>>
>> **Update 2020-08-04**
>>
>> Well, this is getting weird. This morning, if I open a REPL with 
>> figwheel-main, or from CIDER, it sometimes works as expected -- `(:default 
>> attr)` returns 1.
>>
>> If I try it by opening the ClojureScript REPL using `clj`, it is still 
>> broken.
>>
>> ```clojure
>> % clj --main cljs.main --repl
>> ClojureScript 1.10.773
>> cljs.user=> (defrecord Attr [has-default defaut])
>> cljs.user/Attr
>> cljs.user=> (def attr (->Attr true 1))
>> #'cljs.user/attr
>> cljs.user=> (get attr :default)
>> nil
>> cljs.user=> (:default attr)
>> nil
>> cljs.user=> (:has-default attr)
>> true
>> cljs.user=> (println "attr: " attr)
>> attr:  #cljs.user.Attr{:has-default true, :defaut 1}
>> nil
>> ```
>>
>>
>>   [1]: https://www.clojurescript.org/about/differences#_data_structures
>>
>> --
>> 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.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/clojure/5dd44871-3915-4d80-a959-28be44c8cc32o%40googlegroups.com.
>
> --
> 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.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/clojure/CAORbMON7N3ukBEn%3D%3DzX8pAz3tJg%2BjX32x4TTDDqYdCxbWDswbA%40mail.gmail.com.

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/CAGokn9LpwPYku9606pYXXzLSGQp6aphtsvckjd%3DASG6JEQM2VA%40mail.gmail.com.