Hacker News new | past | comments | ask | show | jobs | submit login
Course using F#: Write your own tiny programming system(s) (cuni.cz)
214 points by Zolomon on Nov 2, 2023 | hide | past | favorite | 28 comments



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


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...).


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

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


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


Fixed now!


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.


There seems to be a lot of confusion for this, unfortunately.

Some more information can be found at https://github.com/tpetricek/Teaching (specifically, https://github.com/tpetricek/Teaching/tree/master/2023/tiny-...). The course is currently ongoing. The videos and PDFs seem to be down, but I wouldn't be surprised if that's just because of hacker news overloading things.

Seems neat, from the slides and demos.


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).


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 :)


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

Will recordings be available after it ends?


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).


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...


F# is a better TypeScript :)


What’s the best hard copy book on the language?


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


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.


Perhaps the closest thing: https://github.com/CosmosOS/Cosmos


I think MSRL had a F# based OS they were playing with around the same time as Midori and Singularity.


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.


Everything 403 errors


The videos are now up again.


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


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/


Also take a look at Fabulous[1]. The code with it looks nicer than Avalonia.FuncUI.

[1]https://github.com/fabulous-dev/Fabulous.Avalonia


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.


Looking forward to the lisp implementation


I can't see any video.


Should be fixed now!




Consider applying for YC's W25 batch! Applications are open till Nov 12.

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

Search: