cl-permutation
doc
Our great sponsors
cl-permutation | doc | |
---|---|---|
4 | 8 | |
47 | 15 | |
- | - | |
3.5 | 7.0 | |
10 months ago | 21 days ago | |
Common Lisp | Common Lisp | |
BSD 3-clause "New" or "Revised" License | GNU General Public License v3.0 or later |
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.
cl-permutation
-
Permutation Iteration and Random Access
Here is Lisp code [1] that maps all sorts of combinatorial objects—permutations, bit sets, base-B integers, multi-set permutations, etc.—perfectly into the smallest set of integers [0, n-1] and back. (In a sense, it's a perfect hash.) This is used to efficiently solve combinatorial puzzles.
[1] https://github.com/stylewarning/cl-permutation/blob/master/s...
-
Can a Rubik's Cube be brute-forced?
Note that in the unlikely event anyone wants to run the code in the post, the algorithm presented is still in an open PR, APIs change until merged, etc.
- Favorite Lisp project? Shameless plugs welcome & encouraged!
-
Is Fisher-Yates Shuffle (aka Knuth Shuffle) implemented in some vetted CL library?
CL-PERMUTATION has random-perm to produce a random permutation of even, odd, or any parity.
doc
-
How do you think about version number management?
- it is possible to subscribe on the changes using RSS (this is a feature of the 40ANTS-DOC documentation builder).
-
From Common Lisp to Julia
So, the article is harsh on CL: YMMV. Also, your goal may vary: I want to build and ship (web) applications, and so far Julia doesn't look attractive to me (at all). Super fast incremental development, build a standalone binary and deploy on my VPS or ship an Electron window? done. Problem(s) solved, let's focus on my app please.
The author doesn't mention a few helpful things:
- editor support: https://lispcookbook.github.io/cl-cookbook/editor-support.ht... Emacs is first class, Portacle is an Emacs easy to install (3 clicks), Vim, Atom support is (was?) very good, Sublime Text seems good (it has an interactive debugger with stack frame inspection), VSCode sees good work underway, the Alive extension is new, usable but hard to install yet, LispWorks is proprietary and is more like Smalltalk, with many graphical windows to inspect your running application, Geany has simple and experimental support, Eclipse has basic support, Lem is a general purpose editor written in CL, it is Emacs-like and poorely documented :( we have Jupyter notebooks and simpler terminal-based interactive REPLs: cl-repl is like ipython.
So, one could complain five years ago easily about the lack of editor support, know your complaint should be more evolved than a Emacs/Vim dichotomy.
- package managers: Quicklisp is great, very slick and the ecosystem is very stable. When/if you encounter its limitations, you can use: Ultralisp, a Quicklisp distribution that ships every 5 minutes (but it doesn't check that all packages load correctly together), Qlot is used for project-local dependencies, where you pin each one precisely, CLPM is a new package manager that fixes some (all?) Quicklisp limitations
> [unicode, threading, GC…] All of these features are left to be implemented by third-party libraries
this leads to think that no implementation implements unicode or threading support O_o
> most of the language proper is not generic
mention generic-cl? https://github.com/alex-gutev/generic-cl/ (tried quickly, not intensively)
Documentation: fair points, but improving etc. Example of a new doc generator: https://40ants.com/doc/
Also I'd welcome a discussion about Coalton (Haskell-like type system on top of CL).
-
Kons-9 update – 3D Common Lisp system now on MacOS and Linux
Great news! Feedback: I guess it's time to start working on documentation ;) The readme doesn't say what the system does. I guess you could maintain a high overview "manually", and in parallel set up a documentation system (40ants doc is kinda cool). Best,
-
Favorite Lisp project? Shameless plugs welcome & encouraged!
- and 40ANTS-DOC builder.
-
Why Turtl Switched from Common Lisp to JavaScript
That is why I've put about half of this year into the Common Lisp documentation generator for all of my libraries.
If you are interested, please read it's docs and join the effort of making good documentation for CL projects: https://40ants.com/doc/
-
CL-TAR Project
And the doc is built with the new https://40ants.com/doc 🎉 Really cool.
- Does everyone here manually specify the entire project's dependency tree in .asd files?
What are some alternatives?
sly - Sylvester the Cat's Common Lisp IDE
wookie - Asynchronous HTTP server in common lisp
ultralisp - The software behind a Ultralisp.org Common Lisp repository
woo - A fast non-blocking HTTP server on top of libev
shan - A declarative wrapper around your favourite system-wide package manager
cl-lsp - An implementation of the Language Server Protocol for Common Lisp
phel-lang - Phel is a functional programming language that transpiles to PHP. A Lisp dialect inspired by Clojure and Janet.
weblocks - This fork was created to experiment with some refactorings. They are collected in branch "reblocks".
LispSyntax.jl - lisp-like syntax in julia
coalton - Coalton is an efficient, statically typed functional programming language that supercharges Common Lisp.
kons-9 - Common Lisp 3D Graphics Project