Devo smettere di fare ricerche in rete altrimenti trovo roba interessante e poi mi tocca passare le serate a casa davanti al pc 🤣

"I had the pleasure of serving as the summer instructor for 15-150, the introduction functional programming class for computer science students at Carnegie Mellon, in the Summer 2023 semester.

This course typically serves as the second or third course in the traditional computer science undergraduate sequence, a privilege which not many other universities get to enjoy, as functional programming is often considered a niche topic.

Despite this, I (and CMU) believe this to be of the utmost importance. A disciplined, type-oriented, safety-first view of programming can be of utmost benefit to burgeoning computer science scholars, and I have often heard feedback from students that it is has a transformative view on their perspective of computer science in general.

To that end, I have made my lecture materials from my iteration of the course available for free on the Internet. Please feel free to use this knowledge in any way that you see fit, and I hope that it aids you in your future endeavors."

Parliamo di programmazione funzionale e in particolare di StandardML. Magari può interessare a qualcunə...

https://brandonspark.github.io/150/

#functional_programming #functionalprogramming #standardml #ocaml #programming #dev
15-150: Principles of Functional Programming

Some late nights, when I lie down in bed (you know, to work), my outmoded brain keeps screaming in my mind's ear that #CS undies should be taught "functional system #programming"—<𝜆|σ>, as it were—in OG FP languages, like #StandardML or #OCaml, on a proper academic+industrial #OS, like FreeBSD, NetBSD, OpenBSD, or a similar BSD #UNIX. (Sorry, AT&T, you lost me, after your 6th Edition, or maybe your 7th Edition; but then, who cares, at this point.)

• "UNIX System Programming with Standard ML", Shipman (2001)
http://www.mlton.org/References.attachments/Shipman02.pdf
• "UNIX System Programming in OCaml", Leroy (2014)
https://ocaml.github.io/ocamlunix/ocamlunix.pdf

One of the weirdest #OCaml syntax choices is the function keyword. I actually like #StandardML choice more here. It lets me embed pattern matching directly in the function declaration.
I would've preferred #StandardML, but there are too few people using SML these days...I suppose I could also ask about #Haskell or #FSharp blogs.

Does *anyone* actually like Moscow ML's insistence that structures live in files with identical names (e.g., `structure Foo_Fabricator` MUST live in the file `Foo_Fabricator.sml` and MUST have a signature with identical name `signature Foo_Fabricator` which itself lives in the file `Foo_Fabricator.sig`)?

I always thought it idiomatic Standard ML to use SCREAMING_SNAKE_CASE for signature names, which breaks Moscow ML's conventions (unless you put it in SCREAMING_SNAKE_CASE-sig.sml and compiled it as a toplevel unit...which kinda breaks the whole module-as-compilation-unit idea?).

And Moscow ML *hates* it when you include the signature and a structure within the *same* file, because that violates its hardcoded assumptions about the world.

And another thing...

#MoscowML #StandardML #functional_programming #naming #convention #programming

A little gem of an opening salvo from the "Learning #StandardML", #Tufts U Comp 105 course handout:

————
For someone with a background in COMP 11 and COMP 15, the fastest and easiest way to learn Standard ML is to buy Ullman’s book and work through chapters 2, 3, 5, and 6. But many students choose not to buy Ullman—a move that saves money but costs time. You can recover some of the time by reading this guide; it enumerates the most important concepts, and it tells you where to find key information, not just in Ullman, but also in three other sources:

• Jeff Ullman’s "Elements of ML Programming" (ML’97 edition)
• Norman Ramsey’s "Programming Languages: Build, Prove, and Compare"
• Mads Tofte’s “Tips for Computer Scientists on Standard ML" (Revised)
• Bob Harper’s draft "Programming in Standard ML"

Know your sources! Mads Tofte and Bob Harper both worked with Robin Milner on the design of Standard ML, and they helped write the Definition of Standard ML. They know what they’re talking about, and they have good taste—though Tofte’s use of the ML modules is considered idiosyncratic. Norman Ramsey at least knows some functional programming. Jeff Ullman, by contrast, got his start in the theory of formal languages and parsing, then switched to databases. He may like ML, but he doesn’t understand it the way the others do.
————

I don't know any professors who teach at Tufts, but the word on the Web is that Ramsey is the author of this handout. Cheeky blighter!🤣

https://www.cs.tufts.edu/comp/105-2017f/readings/ml.pdf

If you are trying to get HOL4 working on a Raspberry Pi, you need to use MoscowML.

Poly/ML native compilation is not really supported for Raspberry Pi, and its bytecode interpreter performs worse than MoscowML's bytecode interpreter anyways.

I learned this after spending a few frustrating days trying to get PolyML to build HOL4, fruitlessly, then gave Mosml a shot (and it worked like a charm).

The things you learn...

#HOL #MoscowML #PolyML #StandardML #RaspberryPi

Looking for a crash course in Standard ML/NJ for someone who has never done functional programming. Got about a week. 😬 #functionalprogramming #standardml

I wish I had a minimal statically-typed functional programming language which was eager, had type classes, and ML-like modules.

Oh, and supported Unicode support for input and Unicode strings.

Basically:

My dream language = Standard ML + type classes + (100% unicode support) - equality types.

#functionalprogramming #StandardML #Haskell