deprecated-coalton-prototype
austral
deprecated-coalton-prototype | austral | |
---|---|---|
9 | 19 | |
216 | 1,040 | |
- | 2.4% | |
1.4 | 7.9 | |
over 2 years ago | 5 days ago | |
Common Lisp | OCaml | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
deprecated-coalton-prototype
-
The thing is, if you start with Common Lisp, it's pretty easy to write a DSL that adds the constraints and provides the guarantees that you need. [..] Maybe all I had to do to turn CL into Haskell is implement the Hindley-Milner algorithm.
can't jerk
-
Hell Is Other REPLs
I used to use CL quite a bit, but have since abandoned it for Haskell, so I'm a bit biased.
There's a number of issues with that:
- I'd be missing all the optimizations that can be performed due to purity.
- There's more to Haskell's type system than just vanilla Hindley-Milner, and the implementation of it isn't particularly trivial. https://github.com/stylewarning/coalton is the closest thing and it's still missing a large amount of the type system.
- Doing the implementation would be a significant amount of work to get it to integrate well with the language, and it would be a layer tightly glued on top instead of integrated with the language.
- A major part of Haskell is the standard library, a good chunk of the semantics of Haskell people use on a day to day basis, like monads and etc, are a part of the standard library.
-
Six years of professional Clojure development
This looks like something Common Lisp does better, however I have too little Clojure experience to compare. CL (and SBCL in particular) does "good enough" static type checks, it throws warning at compile time (when we compile one function with a keystroke). We can also precise our function types gradually. It isn't a HM type system (Coalton[1] could be it) but it's already great (compared to no compile-time types at all).
Oh, about interactive development: that's sure, CL shines here. Objects get updated (lazily) after a class change, we can install Quicklisp libraries without restarting the image, etc. It's very smooth.
1: https://github.com/stylewarning/coalton
- Common lisp or Racket as a first lisp?
- Coalton is a dialect of ML embedded in Common Lisp
- Coalton – a dialect of ML embedded in Common Lisp
-
What would you like to see in a CL dev environment?
Help out with Coalton.
-
Stupid protocols for CL - Is this a bad idea?
If you like this kind of stuff, maybe you can help implement type classes in Coalton.
-
On repl-driven programming
(there's a work-in-progress library to add a dialect of ML on top of CL: coalton)
austral
- Austral: A systems language with linear types. (2021)
- Where Are the Supply Chain Safe Programming Languages?
- Rust developers concerned about complexity, low usage
-
Modern Pascal is still in the race (2022)
> But these days folks are mostly used to the C style syntax.
Mostly, but I'm told the new Austral[1] language has syntax very similar to that of Pascal's.
1: https://austral-lang.org/
- Austral Programming Language
-
Why Use Pascal?
For the first couple of items on the list, Austral might be a language worth considering:
https://austral-lang.org
It's new so it obviously doesn't have the community of libraries to use, but it does have a very friendly and accessible Pascal-like syntax, while also having a state of the art linear type system.
-
Interested in "secure programming languages", both theory and practice but mostly practice, where do I start?
For something more new look at Austral.
- The seven programming ur-languages
-
Must move types by Niko Matsakis
https://austral-lang.org has linear types and doesn’t use RAII but it doesn’t have defer.
What are some alternatives?
paip-lisp - Lisp code for the textbook "Paradigms of Artificial Intelligence Programming"
Elm - Compiler for Elm, a functional language for reliable webapps.
immer - Postmodern immutable and persistent data structures for C++ — value semantics at scale
csharplang - The official repo for the design of the C# programming language
yale-haskell - HASKELL: Yale Haskell system written in Lisp
conjure - Interactive evaluation for Neovim (Clojure, Fennel, Janet, Racket, Hy, MIT Scheme, Guile, Python and more!)
kandria - A post-apocalyptic actionRPG. Now on Steam!
go - The Go programming language
clj-kondo - Static analyzer and linter for Clojure code that sparks joy
racket - The Racket repository
web-development-with-clojure - Repository for the examples from the book Web Development with Clojure, 2nd edition
wuffs - Wrangling Untrusted File Formats Safely