Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Clojure's primary conveniences over C# roughly ordered by level of convenience, with the hugest improvements at the top:</p> <ul> <li><p>More pleasant syntax for literal collections, as you observed. Primarily for literal hash maps, which are sufficiently ugly in C# (you need to write out the generic type) that you wouldn't define one inline. C#'s <code>new Dictionary&lt;string, int&gt; { { "Joe", 6" }, { "Steve", 18" } }</code> becomes <code>{"joe" 6, "steve" 18}</code>.</p></li> <li><p>Powerful destructuring for function arguments that works well with aforementioned collection literal syntax.</p></li> <li><p>Keywords make it easy to refer to things symbolically without having to take time out to define enums.</p></li> <li><p>The core library has many useful built-ins for functional programming which LINQ lacks.</p></li> <li><p>The core library has really nice immutable vectors and maps that work nicely together with aforementioned built-ins.</p></li> <li><p>Thanks to the core data structures being immutable, the language has really convenient STM transactions for managing concurrency that just work without a lot of extra effort.</p></li> <li><p>Metadata is extremely convenient; it allows you to "tack on" information that rides along with other data in a way that's much easier than e.g. defining a throwaway type representing original-data-plus-other-stuff.</p></li> <li><p>Often you want to use an abstraction with types that you don't control; Clojure protocols make it easy to do so, whereas it's almost impossible in C# since you can't extend someone else's type to implement an interface. (You can't even do trivial things like make an INumeric interface.)</p></li> <li><p>Macros are easier to use and more powerful than C# expression trees for extending the language.</p></li> </ul> <p>You can find more information about most of the stuff mentioned above at <a href="http://clojure.org">Clojure.org</a>.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload