TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Shem: A Haskell-Derived Compile-to-JavaScript Lisp

117 pointsby rwosyncover 9 years ago

10 comments

chenglouover 9 years ago
Man AST editors are so hard to get right. I&#x27;ve tried many of them, this one (Golem) included, but it&#x27;s just very hard to kill the habit of wanting to move around&#x2F;delete single text characters. Because of that, many people give up and don&#x27;t move past the initial stage.<p>I think what we need is &quot;Elm error messages&quot; (<a href="http:&#x2F;&#x2F;elm-lang.org&#x2F;blog&#x2F;compiler-errors-for-humans" rel="nofollow">http:&#x2F;&#x2F;elm-lang.org&#x2F;blog&#x2F;compiler-errors-for-humans</a>) for AST editors. Take paredit for example. If you&#x27;re trying to delete a closing parenthesis, instead of refusing to do so and silently fail, display a tooltip that explains why such action is disallowed, and a list of (heck, hard-coded even, like some Elm errors) likely actions the user&#x27;s trying to take. Deleting the list? Deleting just a token? Show the keybindings. Or even automatically pick the most likely action after a second invalid delete attempt.<p>I actually believe the constraints imposed by structural editing can be very beneficial (again, see paredit which helps your program stay syntactically valid). But constraints are good when they&#x27;re visible. You can exhaustively check what&#x27;s there. Constraints are frustrating when they&#x27;re invisible and you repeatedly accidentally stumble against them.<p>(Ideally you&#x27;d also provide a free-form mode where you can edit things as plain text. But from personal experience I&#x27;d just go back to this instead of learning the AST editing keybindings.)
评论 #10730664 未加载
评论 #10730141 未加载
评论 #10729948 未加载
评论 #10730011 未加载
评论 #10729927 未加载
xixixaoover 9 years ago
The irony of the project you&#x27;ve worked on for a year hitting HN while you&#x27;re sitting on an 11 hour flight... AMA if you wish
评论 #10730926 未加载
bkaseover 9 years ago
Don&#x27;t miss the presentation linked at the bottom of the readme[1], and the browser-based IDE, Golem linked in the middle[2].<p>[1] <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=HnZipJOan54" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=HnZipJOan54</a> [2] <a href="http:&#x2F;&#x2F;shem.io&#x2F;" rel="nofollow">http:&#x2F;&#x2F;shem.io&#x2F;</a>
ScottBursonover 9 years ago
Not to be confused with Shen [0].<p>[0] <a href="http:&#x2F;&#x2F;www.shenlanguage.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.shenlanguage.org&#x2F;</a>
provemewrongover 9 years ago
This is one of the most Hacker News titles I&#x27;ve seen.
评论 #10730158 未加载
评论 #10729873 未加载
techdragonover 9 years ago
So it came to pass that Haskell begat a Lisp, who in turn begat many children unto the clan of JavaScript.<p>The title translates to &quot;biblical speak&quot; pretty well haha
mikkomover 9 years ago
So this is not javascript version of shen? Very confusing name.<p><a href="http:&#x2F;&#x2F;www.shenlanguage.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.shenlanguage.org&#x2F;</a>
jamesfisherover 9 years ago
&gt; The semantics are based on Haskell<p>Are the semantics available anywhere? I&#x27;ve been waiting for someone to create a Lisp with pure&#x2F;monadic IO, but I don&#x27;t know whether Shem is what I imagine.
daxfohlover 9 years ago
Is it lazy evaluated? Tail-call optimized?
评论 #10729736 未加载
reycharlesover 9 years ago
How is this &#x27;Haskell-derived&#x27;?
评论 #10729824 未加载