You necro'ed a thread that was effectively a year old, it isn't an ideal place to receive feedback.
Maybe try posting on the elixir forum? On Sunday, August 28, 2016 at 1:13:55 PM UTC-4, Hassan Zamani wrote: > > No comments? > > On Saturday, August 13, 2016 at 2:53:56 PM UTC+4:30, Hassan Zamani wrote: >> >> I would appreciate hearing your thoughts on >> https://github.com/hzamani/synex. It has two macros: keys and params, >> first one for expansion of atom-value pairs in keyword lists, maps and >> structs, and other for expansion of string-value pairs in maps. Both of >> them have variable pinning and map update support and params supports >> nested maps: >> >> iex> params(%{a => %{b, c}}) = %{"a" => %{"b" => 2, "c" => 3}} >> iex> a >> %{"b" => 2, "c" => 3} >> iex> c >> 3 >> >> Hassan >> >> On Wednesday, February 17, 2016 at 1:29:31 PM UTC+3:30, Jaap Frolich >> wrote: >>> >>> Very nice Johan, >>> >>> Love the power of macros. Is there any resolution if this will make the >>> standard library? I have a lot of repetition in my maps as well in my >>> current app, and this is one of the things I like in ES6 that I really miss >>> in Elixir (mostly it is of course the other way around ;)). >>> >>> Cheers, >>> >>> Jaap >>> >>> On Monday, August 10, 2015 at 4:57:02 PM UTC+8, Johan Wärlander wrote: >>>> >>>> After playing around a bit with the ~m sigil, I proposed a couple of >>>> updates (one which touched on work that Andrea had alredy done, but with a >>>> twist); short_maps now support the following: >>>> >>>> # Equality checks >>>> foo = 1 >>>> bar = 2 >>>> ~m(foo bar)a == %{foo: 1, bar: 2} #=> true >>>> >>>> # Matching >>>> ~m(foo bar)a = %{foo: 12, bar: "baaz"} >>>> foo #=> 12 >>>> >>>> # Pinning (NEW) >>>> foo = 1 >>>> ~m(^foo bar)a = %{foo: 1, bar: "baaz"} #=> %{foo: 1, bar: "baaz"} >>>> ~m(^foo bar)a = %{foo: 5, bar: "baaz"} #=> MatchError >>>> >>>> # Structs, when first word starts with '%' (NEW) >>>> defmodule Foo do >>>> defstruct bar: nil >>>> end >>>> ~m(%Foo bar)a = %Foo{bar: "baaz"} >>>> bar #=> "baaz" >>>> >>>> For anyone else interested, please do get the latest version from >>>> Andrea's repository (https://github.com/whatyouhide/short_maps), then >>>> play around with it and see how it feels. >>>> >>>> On Friday, June 19, 2015 at 12:02:36 PM UTC+2, Andrea Leopardi wrote: >>>>> >>>>> I stood against the %{foo, bar, baz} syntax and deemed that too >>>>> implicit, but I'm in favour of a possible ~m sigil. I think it may >>>>> still be a bit implicit, but I can see it would make code much more >>>>> concise >>>>> in a lot of situations. I took a stab at it and wrote a simple >>>>> implementation for such sigil, here >>>>> <https://github.com/whatyouhide/short_maps>. We can try it out and >>>>> see if we like it (and please, have a look at the implementation as well >>>>> as >>>>> I'm not sure it's bulletproof). >>>>> >>>>> >>>>> >>>>> On Sunday, May 31, 2015 at 12:19:46 PM UTC+2, Devin Torres wrote: >>>>>> >>>>>> Taking a pretty cool page out of ES6: >>>>>> >>>>>> # If `method`, `url`, `headers`, and `payload` are already bound >>>>>> %Request{method, url, headers, payload} >>>>>> >>>>>> # If e.g. `payload` hasn't been bound yet >>>>>> %Request{method, url, headers, payload: get_payload()} >>>>>> >>>>> -- You received this message because you are subscribed to the Google Groups "elixir-lang-core" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/debe0e81-410d-4312-b386-797d7929d6c6%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
