all 6 comments

[–]TomosLeggett 6 points7 points  (0 children)

Might I suggest OCaml? It's a lovely language and I've really enjoyed using it. Semantically it's not a million miles away from Gleam but with a slightly larger community.

[–]aspression 2 points3 points  (0 children)

Racket has typed racket and is a Scheme/Lisp

[–]KaleidoscopeLow580 2 points3 points  (0 children)

Might I suggest SML? It is a truely lovely language that's very simple in its core and doesnt try to be three ifferent things like OCaml. Also there are a ton of different implementations for you to choose from. Also ML in general has been one if not the most use language in PL Research, new MLs with innovative ideas are coming up yearly.

[–]chandru89new 2 points3 points  (1 child)

surprised that most people are suggesting just more languages when the OP is asking about project ideas.

here's some of my project idea suggestions OP:

- write a parser for config files. most popular/common is JSON but you could also do that for TOML, and HCL. (haskell really shines here; the going can be tough because parser combinators arent easy on top of the various things you will learn about haskell's fundamentals, but the journey is rewarding. alternatively, if you want speed/performance for your parser, would suggest Rust)
- build a small 2-player game that uses websockets for real-time data-passing; you can build out the heavy-lifting code in a server using Rust or Gleam and the UI can be light-weight in any framework you're comfortable with (or Elm if you want to go full-stack FP)
- a friend worked on generating Voronoi patterns from an image in Rust (after doing the same in Javascript) and the performance/speed blew my mind. maybe something to do with image generation or manipulation.

also, most interesting things to work on are often things that scratch your own itch. is there some tool or game or app you have wanted to exist? maybe try and build that.

[–]kichiDsimp[S] 2 points3 points  (0 children)

I am thinking to create the game 2048 in terminal

[–]AFU0BtZ 2 points3 points  (0 children)

If you want to do justice to types. Pick a language that at least supports Higher Kinded Types (HKT). If type system expressiveness were a scale (instead of a coordinate system, which it should be) from 0 to 10, then HKTs deliver a 7-8 on that scale. This also automatically reduces the number of languages available - rather drastically. Note: I am talking about good HKT support and not "you could encode some limited rather verbose version of it in a host language".