top | item 38120598

Course using F#: Write your own tiny programming system(s)

214 points| Zolomon | 2 years ago |d3s.mff.cuni.cz

28 comments

order

_f5ah|2 years ago

Looks interesting.

Once I saw it's a Czech university course using F#, I knew Tomáš Petříček would be the lecturer :)

A couple years back, I wrote a compiler of tiny-ish Scala subset in F# (the code is imperative, though)[1]

[1]: https://github.com/mykolav/coollang-2020-fs

tpetricek|2 years ago

For anyone interested in the slides & videos, those are now accessible again! Sorry for the technical issues (it was not the HN effect, but a migration to a new disk...).

fyzix|2 years ago

The videos were working earlier in the week...they're returning a 403 now.

Repo with slides: https://github.com/jinyus/Fsharp-Teaching

tpetricek|2 years ago

Seems like someone needs to restart some server somewhere. I'll investigate. Videos should be back up soon :)

nickpeterson|2 years ago

For anyone not familiar with the fsharp community, tpetricek has made fantastic contributions. Not a week goes by I don’t Google something and end up at a stackoverflow answer or fssnip entry he wrote.

dvdkon|2 years ago

I wouldn't have expected a course I'm attending to get to HN. I suppose the non-conventional name paid off :)

I can recommend it to CUNI students interested in programming languages. It should run again in 2025/26 (at least according to current plans).

BossingAround|2 years ago

Looks very cool!

I'd advise Cuni to host the course on something like EdX/Coursera/... to:

a) Increase the visibility of the university

b) Allow students to go through the course asynchronously

c) Provide certificates for completing the course and possibly recuperate some money off of that :)

qwerty456127|2 years ago

Is this an open class people from outside the university can attend?

Will recordings be available after it ends?

tpetricek|2 years ago

Yes, this is fully open - I'm posting all the materials and videos as the course goes (but the server is down at the moment - should be back up soon).

williamcotton|2 years ago

I started down this path sometime last year with Crafting Interpreters and I’ve gotten obsessed with this entire world since. I wrote a little language [0] using Python Lex Yacc a couple of months ago because I wanted an awk-like way to quickly make graphs/charts from the CLI. Then I wrote a parser-as-a-type in TypeScript [1] for the same grammar.

My plan was to take a look at OCaml for future tinkerings with parsers, but man, F# is already looking very familiar between TypeScript and Lex/Yacc-like things.

Thanks for this post, I think I might have a new favorite language in the oven!

[0] https://github.com/williamcotton/dotfiles/blob/master/bin/pl...

[1] https://github.com/williamcotton/dotfiles/blob/master/bin/pl...

KurtMueller|2 years ago

F# is a better TypeScript :)

anta40|2 years ago

Initially I read this: "Write your own operating system". OS... with F#? I almost fell out of my chair :p

steego|2 years ago

While I wouldn’t recommend it, it wouldn’t be that crazy as there’s an experimental F# to Rust compiler that’s part of the Fable compiler.

weatherlight|2 years ago

This has already started,

    The course will be taught in alternating years with Programming language design (NPRG075). It will not run in 2024/25.
:(

Really cool content though. Kinda wish I could have joined.

beezle|2 years ago

Everything 403 errors

tpetricek|2 years ago

The videos are now up again.

persnickety|2 years ago

Speaking of F#, are there any tutorials/demos on how to set it up on Linux, to run WinForms, without runtime mismatch issues?

Zolomon|2 years ago

You should be able to use Avalonia UI[1] as an alternative GUI layer on Windows, Linux, macOS, iOS and Android.

There is a beautiful functional MVU wrapper around it called Avalonia.FuncUI[2] with Avalonia.FuncUI.Elmish[3] which is an implementation of Elmish[4] (based of the Elm language[4]) for F#.

[1]: https://avaloniaui.net/

[2]: https://github.com/fsprojects/Avalonia.FuncUI/

[3]: https://www.nuget.org/packages/Avalonia.FuncUI.Elmish and https://github.com/fsprojects/Avalonia.FuncUI/tree/master/sr...

[4]: https://elm-lang.org/

Barrin92|2 years ago

WinForms is a Win32 wrapper so unless you're running Mono which I don't think has been targeted by F# in ages I don't think that's going to work, unless you plan to run a very old F# version.

ngcc_hk|2 years ago

Looking forward to the lisp implementation

leke|2 years ago

I can't see any video.