effekt
A research language with effect handlers and lightweight effect polymorphism (by effekt-lang)
cubicaltt
Experimental implementation of Cubical Type Theory (by mortberg)
effekt | cubicaltt | |
---|---|---|
13 | 3 | |
288 | 558 | |
2.8% | - | |
9.7 | 2.3 | |
4 days ago | 8 months ago | |
Scala | Haskell | |
MIT License | MIT License |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.
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.
effekt
Posts with mentions or reviews of effekt.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-05-07.
-
What the imperative shell of an Functional Core/Imperative Shell language looks like
I like it. Modern languages that distinguish between pure and impure programs like Flix, Koka, and Effekt do so on the type level instead of syntactically. This has three advantages:
-
Algebraic Effects: Another mistake carried through to perfection?
The problem with checked exceptions been identified and solved. The same problem and solution applies to effect handlers. Effekt is a language with lexical effect handlers which doesn't have this problem. Consider the following program in Effekt:
-
Is continuation passing style conversion still used as an intermediate language?
Yes, for you this is the right decision. But for us going to CPS makes everything significantly easier and in cases where you do use control effects significantly faster. For our language Effekt we are exploring different tradeoffs in different backends.
-
The Registers of Rust - Without boats, dreams dry up
This pattern they observe is nicely captured by effect handlers. These examples are written in Effekt.
-
An approach to manual memory management and side effect handling system, feedback, ideas and thoughts requested
This is beyond my level of expertise. But effect tracking? There are some cool languages out there that do that consistently! Search for "algebraic effects". My favorite is Koka. Effekt also seems to be a popular choice.
-
Let's collect relatively new research programming languages in this thread
https://effekt-lang.org/ A research language with effect handlers and lightweight effect polymorphism
-
Is there a garbage collected, statically typed language, that has null safety, and doesn't use exceptions?
Examples are languages like Koka, Effekt, Links, or Unison. These languages come with a type-and-effect system: a function's type not only tell you which values the function accepts and which values it returns, but also which effects it has. This is relevant to your question, because throwing an exception is one such effect.
-
The Val Object Model: Template for a possible future Swift object model
It seems that with Effekt we are pursuing the same goal, but coming from the opposite direction, perhaps one day we will meet in the middle :). We start from a purely functional language and carefully add effects like mutation.
- Is there a pure-functional ML?
-
"Colored" functions: pure versus impure
- https://effekt-lang.org/
cubicaltt
Posts with mentions or reviews of cubicaltt.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-11-15.
-
Let's collect relatively new research programming languages in this thread
- cubicialtt a programming language based on cubical type theory in which univalence from homotopy type theory isn't an axiom but a theorem
-
How and where to learn the latest mathematical concepts?
If you’re interested in programming languages specifically, the current state of the art is called Cubical Type Theory. CuTT has lots of flavours and the community hasn’t coalesced around a single design. The paper I personally found easiest to digest was the “ABCFHL” paper, but I’d recommend reading it alongside the original CCHM paper. None of the publications made an ounce of sense to me until after I’d digested Favonia’s YouTube channel, Mortberg’s lecture notes and this other series of lectures from Harper (particularly the final one).
-
Plato’s Cave Found in Mathematics
I updated the blog post to include some people in academia who contributed. I've been interacting with Kent Palmer and Sylvester James Gates, Jr. The latter held lectures about the philosophy of mathematics. I've been using work inspired by Vladimir Voevodsky, e.g. cubicaltt (https://github.com/mortberg/cubicaltt), which is also performed by academics.
What are some alternatives?
When comparing effekt and cubicaltt you can also consider the following projects:
koka - Koka language compiler and interpreter
Coq-HoTT - A Coq library for Homotopy Type Theory
Eff - Eff monad for cats - https://atnos-org.github.io/eff
cooltt - 😎TT
tofu - Functional programming toolbox
jasmin - Language for high-assurance and high-speed cryptography
hylo - The Hylo programming language
karamel - KaRaMeL is a tool for extracting low-level F* programs to readable C code
sml-redprl - The People's Refinement Logic
effects-bibliography - A collaborative bibliography of work related to the theory and practice of computational effects
anders - 🧊 Модальний гомотопічний верифікатор математики