jsource
hebigo
Our great sponsors
jsource | hebigo | |
---|---|---|
18 | 21 | |
640 | 21 | |
3.4% | - | |
9.7 | 1.9 | |
3 days ago | about 1 year ago | |
C | Python | |
GNU General Public License v3.0 or later | Mozilla Public 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.
jsource
-
Crafting Self-Evident Code with D
The one other example I know that morphs the language to that extent and to the detriment of readability by C programmers is the J interpreter[1,2]. But, once again, nobody (that I’ve read) claims it’s good or clear C. (Good C for those who speak J, maybe; I wouldn’t know.)
For a way to morph C syntax that does make things better, see libmill[3].
[1] https://code.jsoftware.com/wiki/Essays/Incunabulum
[2] https://github.com/jsoftware/jsource/tree/master/jsrc
[3] https://250bpm.com/blog:56/
- Show HN: Gemini client in 100 lines of C
-
Can anyone identify what this code does ?
Oh damn Whitney C representation.
-
C is the most dysfunctional non-esolang on the planet, precisely because everyone insisted on it being "just simple pointers"
I develop J btw
-
Want cleaner code? Use the rule of six
No, it was rhetorical, because it's obviously (to an APL-family programmer), not bad!
Your cultural prejudice is showing. There are good reasons APL is written the way it is, and this example is simply bringing those benefits to C by writing it in the dense APL style. There are other APL derivatives, like J[1] that are written the same way. These projects are well-maintained. They aren't collapsing under a load of technical debt. The style works. To them, it's clean code.
[1]: https://github.com/jsoftware/jsource
-
Ask HN: Is this how anyone programs?
Recently, I wanted to write a simple piece of code in J, but immediately found a bug. I went ahead to fetch the source to see if I can fix it. But, hell no. I couldn't believe my eyes. Is this how someone programs, really? I just can't believe it didn't go through some kind of obfuscator.
Here are some samples, but almost anything in the repository is beyond me:
https://github.com/jsoftware/jsource/blob/master/jsrc/xo.c
-
Jd
You can view the code, but is not open source: https://github.com/jsoftware/jsource/blob/master/license.txt
-
Someone earlier linked to Arthur Whitney's style of coding in the comments. Can we discuss this further? I am disturbed by what I saw.
This is the same dense style used in J.
-
Why does old C code often declare functions or global variables in the scope it's used, rather than at the top of a source file or a header file?
All-in-all this example doesn't seem too bad. It's clear what happens and is easy to follow. If you wan't to see something remarkably terribly, check out Whitney style. It's used in APL/J/K family interpreters. Keep in mind, financial institutions run that code.
- Ask HN: Examples of Unusual Code Formatting Styles?
hebigo
-
What is the point of the if __name__ == "__main__":, i.e. why use a file as both script and module?
The Lissp transpiler incrementally compiles and executes each top-level form to Python. It needs to do this in case there's a macro definition that might affect the compilation of a subsequent form. If it's only executing definitions, this is harmless, but if you want to precompile the main module, it needs the guard, or the side effects will happen too.
-
What's the most hilarious use of operator overloading you've seen?
If you want Python to be as customizable as Lissp, check out Hissp (and Hebigo).
-
Want cleaner code? Use the rule of six
Python's lambdas can have as many lines as you want. Just wrap parens around it. Hissp uses this form as a compilation target. Its REPL shows the Python compilation. Play around with it til you get it: https://github.com/gilch/hissp
- What would be your “perfect” programming language?
- Kamby – A programming language based on Lisp that doesn't seems like Lisp
- Wisp: Whitespace to Lisp
-
Is ECMAScript really a dialect of Lisp?
The original Lisp's S-expression syntax was just supposed to be an intermediate language used by the compiler when processing the real language based on M-expressions, which kind of never took off. Numerous alternatives to S-expressions have been proposed, and some retain homoiconicity, another feature diagnostic of a Lisp (and one that ECMAScript lacks). For example, see Hebigo's readme, which shows a direct correspondence between its Python-like syntax and that of Hissp's default reader (Lissp), which uses the S-expressions. Julia can also be written in S-expressions, but this usually only used in macro definitions.
- Why Hy?
-
Land of Lisp
I think LoL is too CL-specific. If you know both languages first, you can pretty much translate, but since they'd be trying to learn Lisp in the first place, this is a bad idea.
On the other hand, [Hissp][1] has a pretty good tutorial for anyone coming from a Python background.
[1]: https://github.com/gilch/hissp
-
Interesting or distinctive lisps?
Hebigo: a whitespaceLisp isomorphic to Hissp that looks like Python.
What are some alternatives?
tinygrad - You like pytorch? You like micrograd? You love tinygrad! ❤️ [Moved to: https://github.com/tinygrad/tinygrad]
hy - A dialect of Lisp that's embedded in Python
b-decoded - arthur whitney's b interpreter translated into a more traditional flavor of C
hy-lisp-python - examples for my book "A Lisp Programmer Living in Python-Land: The Hy Programming Language"
ancient-c-compilers - Very old C compilers
slime - The Superior Lisp Interaction Mode for Emacs
ZLib - A massively spiffy yet delicately unobtrusive compression library.
smtfmt - An SMT-LIB formatter.
kdb - Companion files to kdb+ and q
smart-imports - smart imports for Python
boot - Build tooling for Clojure.
coalton - Coalton is an efficient, statically typed functional programming language that supercharges Common Lisp.