Why? Fun to use functional languages for solving puzzles. It also have some interesting concepts and differences compared to Haskell.
A Common Lisp dialect like SBCL.
What about R? It’s becoming quite used in big data mining.
Would love to see this language on codingame.com. Such a fun language to program in. It is strongly typed, but with type inferencing to keep it terse. I love the use of optionals to reduce run time errors. Not to mention powerful structs, enums, and pattern matching.
Extremely useful for professional development as it is the language of choice for iOS and OSX app development. codingdojo.com calls it the 8th most in demand programming language of 2015: http://www.codingdojo.com/blog/8-most-in-demand-programming-languages-of-2015/
I know it’s not already on codingame because it can’t be compiled on linux. Apple announced plans to contribute ports to linux around the launch of Swift 2.0. Hopefully we can see support for it on codingame then.
Julia is becoming more and more popular in the dynamic language and scientific computing community. It’s only a matter of time until it is a very widely used programming language.
Julia dream, dreamboat queen, queen of all my dreams
Every night I turn the light out
I agree that Prolog would be a very nice option for some problems.
There are currently multiple functional languages, many procedural ones, many object oriented ones, scripting language …
Prolog is not only just a missing option for languages, it’s a missing programming paradigm !
I agree that rust should be added. It is a bit of a up and comer but would be nice to learn.
Lets add Kotlin as a programming language.
It is new language from JetBrains for JVM. It is even supported by default in Intellij IDEA, I think that’s enough for adding it.
I forgot to include Befunge on my previous list of April Fools languages.
How did I manage to have that oversight happen?
D Language. I don’t know it myself but my colleagues said they’re trying to learn it.
Common Lisp was already suggested by I’m going to elaborate.
I was actually very disappointed when I didn’t find a single language with simple syntax like Tcl, Common Lisp or Scheme (or Racket) while there are quite a few even less known languages like Dart, Groovy or OCaml. I’m going to make my pick and vote for Common Lisp.
Listing just the features missing in other languges you have:
- Nice and simple prefix syntax.
- Nice and simple syntax macros. I’m aware a few other languages like Scala have them too but they all look like kludges due to complex infix syntax.
- Strong but dynamic type system. Yes, it shares it with E.g. Ruby and Python and it’s (IMO) the best trade-off between safety and ease of use unless you can infer all types statically like Haskell does.
- Both lexically-scoped and dynamically-scoped variables. No other language you support (I think) even has dynamiclly-scoped variables.
- Runtime interactive debugger… not sure if you can make it work or not but…
- The signal-restart error handling system will work regardless even if you can’t support interactive features.
So pick a supported implementation like CCL, SBCL or CLisp. I’d be glad to help you out.
Also @Jabberwockey SBCL is not a dialect of CL. CL has no dialects. SBCL is an implementation of CL.
EDIT: After solving a few puzzles three more points.
- CL is one of the few multiparadigm languages with Metaprogramming, FP, Structured programming and OOP all supported on a pretty good level and easy to mix. Not as good as specialised languages but still. Also its OOP system CLOS has enough unique ideas behind it.
- All puzzles I saw yet have a main loop and CL’s LOOP macro is good for this.
- Miss COND too.
After solving the first two puzzles I couldn’t help but suggest Tcl too. It’s type system (or lack of it) would make input/output too easy and it generally… feels like the best langauge to solve these few first puzzles in. Bash is good too but it has too many corner-cases and, again, complex syntax.
EDIT: Of course I’d be glad to help with adding Tcl support too.
You could try Clojure, that’s a Lisp language. But it’s not just another language, it has a very specific rationale (no uncontrolled mutation) that sets it appart from Common Lisp and has a lot of consequences.
It’s obviously not as mature as Common Lisp.
Clojure has dynamic variables but they are cumbersome, because most functions return lazy lists and that doesn’t work well together.
Sadly, Codingame doesn’t give you access to the Repl.
No signal-restart error handling system, only throw-catch error handling.
it has a very specific rationale (no uncontrolled mutation) that sets it appart from Common Lisp and has a lot of consequences.
Yep, one paradigm less. One thing putting me away from Clojure. CL allows you to shoot yourself in the foot and I generally prefer languages that do.
But why is that a good thing?
Update php5.x to php7 also would be great. It doesn’t have major BCs so no need to have separate “language” as python3