Why are you not using F#, /g/?
cmon.
because "functional" programming languages are a meme and the only fun one to play in is elixir, but I'd still never use it in a production environment
>>107560875>t. filtered
>>107560509The syntax of these functional languages can be nice, but you can actually approximate that pretty well in C++
because I do not trust Microsoft at all.what do I gain over Clojure, beyond types? types become annoying when there are so many things they cannot represent (this number must be prime and within the bounds of 35 to 117, this hash map must contain username keys that belong to this array of users and no user can have identical usernames, etc.) that I get to the point of using a dynamic language with schema validation via things like Malli.types are nice for optimization, I will admit, but Clojure has type hinting.
>>107563007F# is open source
>>107560509Because it’s OCaml but tied to a heavy runtime and MS ecosystem I don’t care about, and I already use OCaml.
>>107560509because it seems nice, but coming from Clojure it seems like a step backwards in terms of syntax and reach.
>>107564112This is how I feel. I use elixir for everything but if it didn’t exist, I’d use Clojure. Functional + enforced immutability + easy concurrency primitives = bliss for 99.9% of software development. I see no reason to use anything else unless it’s low-level development at which point I bite the bullet and use C despite its warts.
>>107563938embrace, extend, extinguish.I do not trust Microsoft at all.their "engineering" in Windows is atrocious. while I do not expect them to introduce such shit code to .NET, a company that irrational is not one that I desire to be in charge of the virtual machine I rely upon.>>107564254why not Clojure over Elixir?things I dislike about Elixir/Erlang:- the syntax is too liberal.- the formatter does not join broken-out expressions into a single line if possible, resulting in a one-way formatting process (unless manual intervention is taken). also, the formatter's docs claim to not treat anything with special care, when this is obviously not true given its treatment of `|>` (which is handled differently from `and` or `+`, for example).- :gb_sets and :gb_trees must be balanced prior equality checks, otherwise you might get incorrect results. this also makes using them as Map keys very annoying.- Elixir does not wrap enough Erlang data structures (such as :gb_sets and :gb_trees), resulting in the need to do Erlang interop (and forgo the use of Enum or Stream), or end up writing your own Elixir integration (or use someone else's). pic related is an excerpt from my own wrapper.- pattern matching (with guards) in general seems excessive. too much flat code = too much repeating yourself (repeating different matches with identical sub-parts). I much prefer nesting with explicit interior conditionals if needed. Clojure's destructuring does everything I need.- pattern matching does not work on generic Enumerable or Streamable elements. in Clojure, destructing works with the sequence abstraction (or associative abstraction).also, I created this issue for Erlang: https://github.com/erlang/otp/issues/10450I believe this issue also exists in Haskell. I believe that you can get around it in Clojure via the Kryo lib (need to test this at some point).
>>107560509>no lisp syntaxinto le trash
>>107564827NTA but I think most people using elixir use Phoenix. Which would also answer your question on F#, you get access to .NET. It’s the reason why I wrote a few tools in F# and not ocaml. Also I’ve heard ocaml tooling in Windows is terrible
>>107564929with Clojure you get access to the JVM
>>107564857
>>107560509I personaly prefer Gb
>>107560509>#fuck microshart
>>107560509We boycott .NET in here for good reasons and we already have Python which is free.
>>107560509because that shit is inferior to haskell
>>107564050F# has more freedom and allows for more imperative constructs when you need them.
>>107563007just assert before using a variable, retard bro.
Rust solved functional programming