type-system-j
adds an optional type system to J language (by Pascal-J)
L1
L1: Tensor Studio — The playground for tensors (by mlajtos)
type-system-j | L1 | |
---|---|---|
4 | 6 | |
20 | 186 | |
- | - | |
10.0 | 0.0 | |
about 8 years ago | over 5 years ago | |
J | JavaScript | |
GNU General Public License v3.0 only | 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.
type-system-j
Posts with mentions or reviews of type-system-j.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-11-25.
- Anyone knows about programming languages where types are constructed by functions?
-
A "logical" compiler
An "easy" and arguably most flexible type system is to make it fully user defined: https://github.com/Pascal-J/type-system-j
-
Function parameter as a tuple
A function that wants more parameters, can expect a boxed list as a tuple alternative. The single function parameter simplifies "user space" type systems (with user control over coercion or error return) and currying/default arg enhancements: https://github.com/Pascal-J/type-system-j
-
Are there any advantages APL offers over Haskell?
A user typing system for J that is used for type coercion, and potentially increased polymorphism, rather than just harassing programmer with errors: https://github.com/Pascal-J/type-system-j
L1
Posts with mentions or reviews of L1.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2021-12-09.
-
Statement-terminator-less languages
L1 does not have statement separator. These are identical:
-
Do we really need async/await keywords?
In L1 https://github.com/mlajtos/L1 is async only — every value is an RxJS observable. You can think of observable as an async iterator, or promise that can resolve multiple times. Assignemnt to variable acts as resolving a promise with that value. On assignemnt, every dependant variables are recomputed. This is called “functional reactive programming”. It is a bit more than you asked for, but I got to L1 when I asked myself what if there was no sync/async distinction, but I may have overthought it. :)
-
Function parameter as a tuple
Thanks! I think we share a few aesthetic ideals :) I really like your work on L1 and New Kind of Paper, and just noticed ES1995 – if only it was true…
-
ShapeRank: Rank Polymorphism Meets Reactive - Gilad Bracha
ShapeRank got me really excited when I first heard about it. I stumbled upon combining arrays and observables in my L1 project, but I never really got it working the way I wanted. Gilad is more than capable, so I am really curious how he progressed.
-
Does this Exist?
I did this in L1. Every value is an Observable (RxJS) and operators/function calls are just creating new nodes in the Observable graph. Observables is a generalization of Futures/Promises for multiple values.
-
Unifying “objects” and “scopes”?
I did this in L1: https://github.com/mlajtos/L1
What are some alternatives?
When comparing type-system-j and L1 you can also consider the following projects:
BQN - An APL-like programming language. Self-hosted!
Ally - Pronounced L-I, Ally is a programming language with semi-optional types.
es1995 - ES1995 – The Missing JS Polyfill
TablaM - The practical relational programing language for data-oriented applications
ngs - Next Generation Shell (NGS)
swift - The Swift Programming Language
tour
zz - 🍺🐙 ZetZ a zymbolic verifier and tranzpiler to bare metal C