trivia
clerk
trivia | clerk | |
---|---|---|
7 | 23 | |
324 | 1,718 | |
- | 1.6% | |
0.8 | 8.3 | |
7 months ago | 10 days ago | |
Common Lisp | Clojure | |
GNU General Public License v3.0 or later | ISC License |
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.
trivia
-
Compiling Pattern Matching
I've used it. :)
https://github.com/guicho271828/trivia/issues/108
-
Pattern matching macros vs functions?
You can see it, for instance, in the Trivia library ( https://github.com/guicho271828/trivia/blob/master/level0/impl.lisp ): the macro match0 is a thin wrapper around the function parse-patterns, and this, in turn, calls the function make-pattern-predicate which performs the recursive destructuring of patterns.
-
From Common Lisp to Julia
I can agree it's not the same, but what's the point? A more interesting disagreement is that I wouldn't say it's a downside (though yes, there are tradeoffs). Especially in Current Year when open source is fashionable and pretty much every language has a package manager to make pulling in or swapping out dependencies pretty easy, I don't see the issue. It's also interesting to note that of all the things Clojure did to "fix" shortcomings of past languages with a more opinionated (and often more correct I'll admit) design philosophy that users are forced to use (even when it's not more correct), infix-math-out-of-the-box wasn't one of them. I don't think that specifically really hurt Clojure adoption. (But of course Clojure is reasonably extensible too so it also has a macro package to get the functionality, though it's more fragile especially around needing spaces because it's not done with reader macros.)
I've brought the library up many times because CL, unlike so many other languages, really lets you extend it. Want a static type system? https://github.com/coalton-lang/coalton/ Want pattern matching? No need to wait for PEP 636, https://github.com/guicho271828/trivia/ If all that keeps someone from trying CL, or from enjoying it as much as they could because of some frustration or another, due to lacking out of the box, chances are it is available through a library.
-
LEM - What If Emacs Was Multithreaded
Great libraries like trivia, iterate/for/alternative loop libraries, alexandria, and a hundred others. Common Lisp is a general purpose programming language with good support for ffi, working with files, databases, images, audio, etc. Just skim awesome-cl if you haven't. You could argue this doesn't have to do with the language, but a lot of these libraries are so good (or even possible) in part because of language features elisp does not have.
-
Pattern Matching Accepted for Python
> After much deliberation, the Python Steering Council is happy to announce that we have chosen to accept PEP 634, and its companion PEPs 635 and 636, collectively known as the Pattern Matching PEPs
This is why I'm still enamored with Lisp. One doesn't wait around for the high priests to descent from their lofty towers of much deep pontification and debate with shiny, gold tablets inscribed with how the PEPs may be, on behalf of the plebes. One just adds new language feature themselves, eg. pattern matching[1] and software transactional memory[2].
1. https://github.com/guicho271828/trivia
2. https://github.com/cosmos72/stmx
-
Show HN: Powerful Python Pattern Matching Library
The source is impressively simple! Good job!
I have been implementing a pattern matcher for scheme based on the Balland pattern optimized, and every time I see pattern matchers for python I always get the feeling that the code you are replacing have to be truly awful for the rather contrived pattern matching syntax to be a net win. Compare any of the python pattern matchers to something like trivia in Common Lisp [0] and you see what I mean.
How do people use the python pattern matchers? I am genuinely curious. One benefit that I see is that you can build patterns at run-time which could be useful.
[0]: https://github.com/guicho271828/trivia/wiki/Type-Based-Destr...
clerk
-
The Current State of Clojure's Machine Learning Ecosystem
Something I really like in the Clojure data science stack that isn't mentioned is Clerk* — an interesting take on notebooks. I think it's a good gateway into Clojure for those coming from a Python or R background.
*https://clerk.vision/
- Improve Jupyter Notebook Reruns by Caching Cells
-
Critique of Lazy Sequences in Clojure
Clojure's lazy sequences by default are wonderful ergonomically, but it provides many ways to use strict evaluation if you want to. They aren't really a hassle either. I've been doing Clojure for the last few years and have a few grievances, but overall it's the most coherent, well thought out language I've used and I can't recommend it enough.
There is the issue of startup time with the JVM, but you can also do AOT compilation now so that really isn't a problem. Here are some other cool projects to look at if you're interested:
Malli: https://github.com/metosin/malli
Babashka: https://github.com/babashka/babashka
Clerk: https://github.com/nextjournal/clerk
- Moldable Live Programming for Clojure
-
Morse, an open-source interactive tool for inspecting Clojure
I'm really enjoying using Clojure with Clerk: https://github.com/nextjournal/clerk
It's a bit like a Jupyter notebook, but you get to use your own editor, you still have a normal Clojure REPL, it's stored in git like "normal" code, etc.
-
Adding Clerk to a Leiningen Project
Hey all, I'm new to Clojure and would appreciate your help with a few questions I had getting started. I'm using Leiningen to setup my projects and manage my packages as recommended in Brave & True. So far I've been able to add any dependencies I've needed without much issue, Neanderthal, tech.v3.dataset, etc. I'm interested in data science, and was hoping to set up a notebook environment to be able to quickly produce data visualizations on the fly since I'm used to working with Jupyter. I came across Clerk, but I'm having some trouble adding it to my project. Here's what I tried:
- Clojure Turns 15 panel discussion video
-
The program is the database is the interface
Clojure also has Clerk, which is like Jupyter, but more befitting Clojure's overall philosophy: https://clerk.vision/
-
Clojure conventions for writing complicated mathematical calculations?
If I were working long enough with gnarly enough equations I'd look into using Clerk to visualize the equations with MathJax or similar, probably following Sam Ritchie's footsteps with SICMUtils. To me this is the true readability answer: lisp notation for precise implementations, compiling to a rich & familiar visual representation.
What are some alternatives?
python-imphook - Simple and clear import hooks for Python - import anything as if it were a Python module
next-auth - Authentication for the Web.
MLStyle.jl - Julia functional programming infrastructures and metaprogramming facilities
portal - A clojure tool to navigate through your data.
awesome-pattern-matching - Pattern Matching for Python 3.7+ in a simple, yet powerful, extensible manner.
libpython-clj - Python bindings for Clojure
peps - Python Enhancement Proposals
pytudes - Python programs, usually short, of considerable difficulty, to perfect particular skills.
awesome-cl - A curated list of awesome Common Lisp frameworks, libraries and other shiny stuff.
leo-editor - Leo is an Outliner, Editor, IDE and PIM written in 100% Python.
flynt - A tool to automatically convert old string literal formatting to f-strings
JD Esurvey - JD eSurvey is an open source enterprise survey web application written in Java and based on the Spring Framework. Check out the tutorial videos to find out more about the application features.