-
https://github.com/matthiasgoergens/Div7 is a simple one that you might like.
-
CodeRabbit
CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
-
There is also a package for Avalonia that lets you write GUI applications in F#: https://funcui.avaloniaui.net
-
Yes, depends on where you draw the line.
XMonad is a bit bigger: https://github.com/xmonad/xmonad
-
Compiler-Algorithm-Code
Haskell and Python implementations of a few algorithms from the book "Compilers: Principles, Techniques, and Tools (2nd Edition)". Currently in the process of porting from Haskell to Python
I'm sure a lot of people here have much better examples, but I wrote some basic regular expression and finite automata algorithms in Haskell a long time ago:
https://github.com/jl2/Compiler-Algorithm-Code/tree/master/h...
I tried it out and after renaming fold -> foldr, it still builds and seems to work. The main function takes a regex as a command line argument and creates a finite automata graph using GraphViz's dot.
In the Compiler-Algorithm-Code/haskell directory:
make
-
I wrote a Lox compiler and interpreter in OCaml a few years ago: https://github.com/gaultier/lox-ocaml
No idea how it holds up, it was my first try at a compiler, but it’s quite small. I was following the Crafting Interpreters book.
-
You can check my (not finished) example of GitHub TUI built in OCaml:
https://github.com/chshersh/github-tui
-
terrateam
Terrateam is an open-source GitOps CI/CD platform for automating infrastructure workflows. It integrates with GitHub to orchestrate Terraform, OpenTofu, CDKTF, Terragrunt, and Pulumi operations via pull requests.
> It’s not exciting to write a GitHub API client and parse tons of JSON.
While buried in our monorepo, so not very accessible, we just open sourced our product that is written in Ocaml and we have a GitHub client that is generated from the OpenAPI schema.
It is separated out from any I/O so it can be used in any I/O context.
https://github.com/terrateamio/terrateam/tree/main/code/src/...
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
I released a game using OCaml bindings to the Raylib library. I had never written OCaml before and I didn't spend very much time refactoring, so the code is pretty messy and maybe isn't the best example of the language. But some of it turned out pretty nice - the first ~90 lines of this file detect collisions between two shapes using the Separating Axis theorem: https://github.com/mega-dean/hallowdale/blob/main/src/collis...
-
ghc
Mirror of the Glasgow Haskell Compiler. Please submit issues and patches to GHC's Gitlab instance (https://gitlab.haskell.org/ghc/ghc). First time contributors are encouraged to get started with the newcomers info (https://gitlab.haskell.org/ghc/ghc/wikis/contributing).
GHCi, version 9.4.8: https://www.haskell.org/ghc/ :? for help
-
Au unfinished command_line client for Hacker News:
https://github.com/LucianU/hn-reader
-
https://hoogle.haskell.org/ can help you find the function that you're looking for.
As for "words"... yes, possibly not the best name. But also so common that everyone that has ever written any Haskell code knows it. Such as Java's System.out.println
-
> Lambda calculus is as pure as can be, and also has terms that don't normalize. That is not considered a side effect.
Many typed lambda calculi do normalise. You can also have a look https://dhall-lang.org/ for some pragmatic that normalises.
> A better example of impurity in Haskell for pragmatic's sake is the trace function, that can be used to print debugging information from pure functions.
Well, but that's just unsafePerformIO (or unsafePerformIO-like) stuff under the hood; that was already mentioned.
-
The are LLVM Caleidoscope (toy compiler) in both Haskell and OCaml
https://github.com/sdiehl/kaleidoscope
-
https://github.com/arbipher/llvm-ocaml-tutorial
The Haskell one is a nice one. Can say nothing about the OCaml one since I found it using a google search.
I've had a try at implementing an Caleidoscope compiler in OCaml but did not finish it. But it was fun to write.
-
Some time ago I made a chip-8 emulator with haskell https://github.com/EzequielRamis/chisito. I suppose it may be easier the state management in ocaml.
-
fslang-design
RFCs and docs related to the F# language design process, see https://github.com/fsharp/fslang-suggestions to submit ideas
Perhaps type providers? Sadly they didn't really take off, they work but remain a niche feature. At least I'm not aware if any other feature fits this description closer. https://learn.microsoft.com/en-us/dotnet/fsharp/tutorials/ty...
Or perhaps Computation Expressions? But those are an integral part of F# and one of the key reasons why it's so flexible and able to easily keep up in many areas with changes in C# - something that require bespoke compiler modification in C# is just another CE* in F# using its type system naturally.
* with notable exception being "resumable code" which is the basis of task { } CE and similar: https://github.com/fsharp/fslang-design/blob/main/FSharp-6.0...
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives