HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
deech
shen-elisp
Emacs Lisp2016–2024
deech / shen-elisp

shen-elisp

Discover this repository through its Hacker News conversations.

5Distinct people
6Mentions
0Explicit recommenders
133GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A public description has not been verified.

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year6 dated mentions

Observed mentions: 2016-04-25 07:13:35 UTC to 2024-03-05 17:20:34 UTC.

01232016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments20162017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2024

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC312
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC000
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC000
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC101
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC101
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC000
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC000
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC000
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC101

What Hacker News says

6 sources
Shen is a very unique language, and one of the ways in which it is unique is that so much of its marketing, information, etc is non-obvious, and less accessible than you might want. I think the main thing that I find compelling about shen is its type system, especially its sequent calculus system (for defining types in a way that would not be possible for most languages). The other thing about it that is compelling is how portable it is. the main language is implemented in a simple kernel language; someone who wanted to port the language to a new environment would need to implement a small (relatively) set of primitives, and then you can run the entire shen environment on top of it. Its worth looking into, however I do caution that it has plenty of rough edges etc. For me personally I think of it as an inspiration for programming language
Read the rest
s I wish to develop someday. Additionally, if you ever worked in a certain environment and really dislike that the language is a bit weak, shen might be something you could port to that language and use. For example, I recently updated https://github.com/deech/shen-elisp so that some of its rough edges were a bit smoothed down and should be more usable; I haven't actually written any shen yet that runs in emacs. That's still a ways away.
In The Shen Programming Language
---- TLDR ---- I completely agree with the others who say: - learn elisp instead of learning "emacs" - if you want to memorize something, just learn the name of the command: if you use it very often then learn/define a keybinding for it ---- part 1: I'm happy I've learned elisp in the last year People complain about memorizing emacs keybindings, but most of the time I just call the command name with M-x command-name. Only if I find myself using it often I bother memorizing or setting a keybinding for it. As for why I use emacs, I started using it for org-mode, which I considered it's only killer feature at the time. Since 1 year ago I started learning elisp and I think only now I can see what's the whole point of emacs. In just 1 year of (beginner-level) elisp I wrote 75 files containing elisp functions to help myself with dozens of
Read the rest
tasks that comprise: - move/mirror parts of ascii diagrams - automate some tasks just clicking on custom org-mode links - wrap ammonite-term-repl to get Ammonite completion for scala scripts [1] [2] - add rudimentary support for kawa scheme to geiser (my first pull request ever (still waiting for response)) - control video player from within emacs while I'm writing subtitles ---- part 2: you can have different emacs configurations Another common complain is that emacs tends to become slower as you add more and more packages. As a spacemacs user, I noticed that too. For this reason when I don't need spacemacs goodies I use multiple, different emacs configurations (with evil-mode though). This is how I do it: 1 - Make a new ".emacs.d" user directory somewhere 2 - Make a new "init.el" user file inside it 3 - Add to the beginning of init.el : (setq user-init-file (or load-file-name "path-to-init.el")) (setq user-emacs-directory (file-name-directory user-init-file)) 4 - Call emacs with: emacs -Q --load "path-to-init.el" That's it. You could achieve the same result using cask, which would be more elegant imo, but takes a couple of seconds more to start. ---- part 3: use elisp to call other languages As for elisp, once you have learned enough of it (not much), if you are determined not to use it, there are different ways to call other languages from it: - clojure through cider plus clomacs - common lisp through slime - shen through shen-elisp [3] - different compiled languages through dynamic modules: - C (example at [4]) - go (example at [5]) - ... many others I haven't investigated... Just out of curiosity, I explored the shen-elisp path. I tried a whole week to see if I could replace it with shen-elisp. At the end of the week I learnt how to call elisp from shen-elisp and shen-elisp from elisp... and the fact that every time you restart shen-elisp you have to re-declare types. However I abandoned the idea for 2 reasons: - Plain elisp is faster: I don't know the implications - I wanted to focus on elisp so I can contribute better to other elisp projects ---- references [1] https://github.com/zwild/ammonite-term-repl [2] https://github.com/spellcard199/ammonite-term-repl-completion [3] https://github.com/deech/shen-elisp [4] http://kitchingroup.cheme.cmu.edu/blog/2017/07/08/Adding-numerical-methods-to-emac… [5] https://mrosset.github.io/emacs-module/
In Buying into the Emacs Platform (2018)
There was a small thread on the Shen Google Group about adding docstrings [1]. There is an BSD version of Shen that can be forked and docstrings added by whomever wants to pickup the work. The language's footprint is small enough now at the moment, that now's the time to get the first chunk done. The BSD version is pretty impressive, and could be turned into a great project if people picked it up. A lot of interest has been expressed, but it is the commercial version that is moving ahead with lots of improvements. Shen's creator, Mark Tarver has added Griffin, an optimizing compiler, concurrency, and HTML generator in the form of SML (Shen Markup Language). It is a very fun project. The small set of instructions it is based upon Klambda, has since been ported to many languages - Ruby, Python, Lisp, Haskell and more. The SBCL port is the m
Read the rest
ain one. Aditya Siram (Deech) has just created an Elisp port, shen-elisp! [2] [1] https://groups.google.com/forum/#!topic/qilang/FHUNMvOyu2U [2] https://github.com/deech/shen-elisp
In A Farewell to FRP
I believe Shen [1] creates m-expressions when certain expressions are passed through its compiler. Shen should appeal to Haskellers and Lispers I would believe. Deech has created a Shen port for elisp [2], and it exists on many other language platforms, because it runs on an enriched lambda calculus called Klambda implemented in a small set of functions. [1] http://shenlanguage.org/ [2] https://github.com/deech/shen-elisp
In The K Language

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.