Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Cool project!

I always thought SML was a great language for teaching computer science and functional programming.

A lot more fun than learning Java. With ML, you got glimpses of aesthetic beauty in code.



I enjoyed my university learning of SML a lot less than I think I should have done. Coming back to it later I was really impressed.

Before university I'd programmed (primarily in BASIC) for many years, so imperative programming just made sense to me. Functional programming seemed alien and the amazing type system of ML-like languages just seemed to get in my way.

What I was missing was the context to understand why it was good. And, to be honest, some compelling examples - we almost completely glossed over IO and system interfaces and the gyrations required to do things like efficient iteration just seemed a bit pointless.

It was good computer science but I found it to be very unsatisfying engineering as I couldn't see how to build something useful. This may be my fault for not doing an engineering degree ;-)

Once I understood more of how these systems are built at lower levels I was much better equipped to be impressed by how much of that was hidden from view!


I also didn't know how to apply the concepts at the time, it seemed more academic than practical, but I had a different level of enjoyment.

Having been a script kiddie teenager, just hacking together stuff that worked, functional programming seemed like some beautiful alien artifact.

I didn't really understand it, but it seemed elegant and enigmatic, which made me want to learn more.


Same thing here (but with Ocaml). You come into this intro course as someone who can already program and it feels like such a weird take that they deliberately steer you away from playing around and building something cool. IO being important is a hill I'm willing to die on, at least for certain kinds of learners.


Steering me away from bad habits or towards more computer science did make sense - but, yes, actively discouraging me from building things I found cool didn't help my motivation.

It didn't deter everybody, though - my friend went full speed ahead and implemented a graphical MacOS application using SML that forwarded e-mails over SMS so he could read them on his phone.

I was amazed to discover that was possible!


The bricklayer IDE and bricklayer-lite are SML IDEs FWIU [1]. Could Millet and/or three Millet VSCode extension and/or the SML/NJ Jupyter kernel [2] be useful for creating executable books [3][4] for learning?

[1] https://bricklayer.org/level-1/ :

> Bricklayer libraries provide support for creating 2D and 3D block-based artifacts. Problem-solving and math are used to exercise creative and artistic skills in a fun and innovative environment. Bricklayer integrates with third-party software including: LEGO Digital Designer, LDraw, Minecraft, and 3D Builder (LeoCAD; `dnf install -y leocad`)

[2] https://github.com/matsubara0507/simple-ismlnj

[3] https://github.com/executablebooks

[4] https://executablebooks.org/en/latest/ (Jupyter-Book: Sphinx (Docutils (.rst ReStructuredText), .md)), MyST-Parser (.md MyST Markdown), Jupyter Kernels (.ipynb Jupyter Notebooks),)


sml was the only one that shadowed lisp in my heart




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: