5 ms·
Anyone built simple (but not trivial) projects with Haskell or OCaml with source that I can look at?
by sgt_bilko 2y ago
Anyone built simple (but not trivial) projects with Haskell or OCaml with source that I can look at?
- elbear 2y agoAn unfinished command-line client for Hacker News: https://github.com/LucianU/hn-reader https://github.com/LucianU/hn-reader
- eru 2y agohttps://github.com/matthiasgoergens/Div7 https://github.com/matthiasgoergens/Div7 is a simple one that you might like.
- stitched2gethr 2y agoThis seems more on the trivial side to me.
- eru 2y agoYes, depends on where you draw the line. XMonad is a bit bigger: https://github.com/xmonad/xmonad https://github.com/xmonad/xmonad
- wyager 2y agoI wrote this like ~10 years ago as a "Hello World++" type demo (basic key/value server) in Haskell. It's about 200 LoC, with a Haskell and Python client. http://github.com/wyager/neks http://github.com/wyager/neks
- jlarocco 2y agoI'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/haskell 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 ./test "(foo)+(bar)*(foo+)" | dot -Tpdf -ofoobarfoo.pdf && xdg-open foobarfoo.pdf
- broken_broken_ 2y agoI wrote a Lox compiler and interpreter in OCaml a few years ago: https://github.com/gaultier/lox-ocaml 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.
- chshersh 2y agoYou can check my (not finished) example of GitHub TUI built in OCaml: https://github.com/chshersh/github-tui https://github.com/chshersh/github-tui
- mega_dean 2y agoI 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/collision.ml https://github.com/mega-dean/hallowdale/blob/main/src/collis...
- Oliyano 2y agoI built a compiler and interpreter for a statically typed but fully inferred functional programming language in OCaml a while ago: https://github.com/coetaur0/nox https://github.com/coetaur0/nox The project is fairly simple, but there are non-trivial parts such as the type-system's implementation that might be worth looking at.
- vrotaru 2y agoThe are LLVM Caleidoscope (toy compiler) in both Haskell and OCaml https://github.com/sdiehl/kaleidoscope https://github.com/sdiehl/kaleidoscope https://github.com/arbipher/llvm-ocaml-tutorial 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.
- _ramis 2y agoSome time ago I made a chip-8 emulator with haskell https://github.com/EzequielRamis/chisito https://github.com/EzequielRamis/chisito. I suppose it may be easier the state management in ocaml.
- Degorath 2y agoThis should be short enough to read: https://github.com/Artamus/git-split/ https://github.com/Artamus/git-split/