HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

"Shen: A Sufficiently Advanced Lisp" by Aditya Siram

Strange Loop Conference2 HN recommenders · recommended in 5 months, 2015-2024
YouTube
26K views · 12 years ago · talk · evergreen

Aditya Siram introduces Shen, a small hosted Lisp with macros, a built-in Prolog and an optional type system. The talk demos a full web app moving between functional, logic and imperative styles, including turning JSON into a type with macros.

It is the standard recommended introduction to Shen, pointed to whenever Shen or its type system comes up.

Functional programmingProgramming language design#shen#lisp#macros#typesystems#prolog#strangeloop

9 comments from Hacker News

@cylinder7142024 · in “Crunch – a Scheme compiler with a minimal runtime”

I'm not super familiar with the details but I've heard that Shen has a really good type system. Aditya Siram addresses types at 12:00 in this video: ▶ this video Shen homepage: link

CitesView on HN
@eggy2023 · in “The Power of Prolog”

I love Shen, but I have not taken it on. I subscribed to the professional version for half a year, and I like the amount of implementations of Shen in other PLs. The pattern matching, optional type checking, and the built-in Prolog is incredible. It's a case where the creator has been shunned by the wider community, partially due to his diplomacy, but he is brilliant, and the uptake has been niche and bleeding edge. If it had a Mozilla behind it or other, I think it would have been more universally appealing. @deech's talks, though older now, are fantastic and relevant[1,2]. But take what I have to say with a grain a salt: I am an avid APL/J/BQN fanboy ;) [1] ▶ this video [2] link

Strongly recommendsView on HN
@bsima2023 · in “The Bipolar Lisp Programmer”

I love Shen and highly recommend the Book of Shen and Tarver's other book on Logic and Computation. The crazy thing about Shen is that its type system is sequent calculus, which means when you define your types, you are literally writing the same language that mathematicians use when they prove things about type theories. Why would you use it? Because you can leverage a crazy amount of power by writing your own type theories in your programs. Is it practical in today's corporate world? Probably not, but there is at least one case study in the real world ▶ this video

CitesView on HN
@eggy2023 · in “Why Janet?”

I was considering Shen[1] for this type of use, since it is implemented in many languages. It is a Lisp with built-in Prolog. Feature list from the site's main page: pattern matching, lambda calculus consistency, macros for defining domain specific languages, optional lazy evaluation, static type checking based on sequent calculus, one of the most powerful systems for typing in functional programming, an integrated fully functional Prolog, an inbuilt compiler-compiler, a BSD kernel under 15 languages (Lisp, Python, Javascript, C ...) and operating systems (Windows, Linux, OS/X), is extensively documented in a book has nearly a decade of use. Aditya Siram made two very good videos on Shen. You can program your front and backend in Shen given Shen is implemented in JavaScript and other PLs. I know somebody did a port to C, but I am not sure if you can then make an exe as described for Janet. ▶ this video link You implement Kλ in your PL of choice if it is not already available, and voila, you can program in Shen! [1] link

RecommendsView on HN
@leanthonyrn2019 · in “Switching from Common Lisp to Julia (2017)”

I was thinking about this the other day. How can I expose my Common Lisp code to Julia. 1. You could take the Clasp path by exposing CL to C++. link This means taking / writing a CL in Julia. 2. Julia has an AST representation written in femtolisp. So it would be in interesting target for CL or some glue middle language like Shen. link ▶ this video

CitesView on HN
@eggy2016 · in “Stanza: A New Optionally-Typed General Purpose Language from UC Berkeley”

Stanza looks very interesting. I'll have to check it out. Thanks! Shen allows you to turn the type checker on or off: (tc +) (tc -) You can leave your type signatures in the code when you turn them off, and when tc is on you only need a type in the top level of your function. It has a fully functional Prolog engine built in, and it supports optional lazy evaluation too. Great talk by Aditya Siram Sept 2014 Strange Loop talk introducing Shen [2]. Shen has been ported to many languages, since it only requires porting the 46 primitive instruction set, called Klambda. Shen has been ported to CL (SBCL), Ruby, JavaScript, Haskell and even Emacs Lisp. [1] link [2] ▶ this video

Strongly recommendsView on HN
@eggy2015 · in “Show HN: Eslisp – Minimal JavaScript S-expression syntax and macro system”

I am learning Shen [1], and this talk [2] shows how you can write Shen on JavaScript, Ruby, front an backend. Shen is a lisp with pattern matching, optional lazy evaluation, optional static type checking, macros of course, and many other cool treats! It can run on top of CL (SBCL), Clojure, JavaScript, Python, and more. [1] link [2] ▶ this video

RecommendsView on HN
@delish2015 · in “Shen-js Browser REPL”

Looking for a feel for Shen? A Strange Loop talk by @deech (40minutes): Shen: A Sufficiently Advanced Lisp. ▶ this video An essay: link It's insightful and readable and it links to several articles new Shen users would be interested in[0]. It was written before Shen, so it talks about Shen's predecessor, Qi. This article and the Bipolar Lisp Programmer by Mark Tarver (creator of Shen) made me feel not so weird for not "getting" UNIX, and helped me get excited about lisp. I'm looking to use Shen or another highly cross-platform functional language for my next project. Application logic in Shen with type-checking. web code using some framework. [0] Wow I'm re-skimming it now: it has Stanislav, James Gosling, buncha Smalltalk, Rob Pike's "Systems Research is Dead" and a lot more. This is actually a good overview of ways to be disillusioned with programming. IMO disillusionment by knowing our historical failures is an antidote to the hype-machine.

RecommendsView on HN
@deech2015 · in “Shen: A Sufficiently Advanced Lisp [video] (2014)”

The second half of the talk ( ▶ this video ) is about turning a JSON object into a type using macros and meta-programming.

CitesView on HN
"Production Prolog" by Michael Hendricks39:58

"Production Prolog" by Michael Hendricks

Strange Loop Conference
58K views • 12 years ago
Practical Common Lisp1:12:10

Practical Common Lisp

Google TechTalks
98K views • 19 years ago
Lecture 1A: Overview and Introduction to Lisp1:12:56

Lecture 1A: Overview and Introduction to Lisp

MIT OpenCourseWare
420K views • 7 years ago
Breaking Down Programming Paradigms: APL's Surprising Learning Curve // Aaron Hsu // Dyalog '1759:03

Breaking Down Programming Paradigms: APL's Surprising Learning Curve // Aaron Hsu // Dyalog '17

Dyalog User Meetings
7K views • 9 years ago
"Propositions as Types" by Philip Wadler42:43

"Propositions as Types" by Philip Wadler

Strange Loop Conference
143K views • 11 years ago
"Datafun: a functional query language" by Michael Arntzenius42:31

"Datafun: a functional query language" by Michael Arntzenius

Strange Loop Conference
9K views • 9 years ago
Clojure for Lisp Programmers Part 1 - Rich Hickey1:28:59

Clojure for Lisp Programmers Part 1 - Rich Hickey

ClojureTV
25K views • 13 years ago
"Type-Driven Program Synthesis" by Nadia Polikarpova39:40

"Type-Driven Program Synthesis" by Nadia Polikarpova

Strange Loop Conference
15K views • 8 years ago
"Stop Writing Dead Programs" by Jack Rusher (Strange Loop 2022)43:04

"Stop Writing Dead Programs" by Jack Rusher (Strange Loop 2022)

Strange Loop Conference
468K views • 4 years ago
Julia: to Lisp or not to Lisp?1:04:53

Julia: to Lisp or not to Lisp?

European Lisp Symposium
24K views • 10 years ago
"Unison: a new distributed programming language" by Paul Chiusano41:06

"Unison: a new distributed programming language" by Paul Chiusano

Strange Loop Conference
45K views • 7 years ago
"Pixie - A Lightweight Lisp with 'Magical' Powers" by Timothy Baldridge33:13

"Pixie - A Lightweight Lisp with 'Magical' Powers" by Timothy Baldridge

Strange Loop Conference
30K views • 11 years ago
William Byrd on "The Most Beautiful Program Ever Written" [PWL NYC]1:31:06

William Byrd on "The Most Beautiful Program Ever Written" [PWL NYC]

PapersWeLove
367K views • 9 years ago
"A (Not So Gentle) Introduction To Systems Programming In ATS" by Aditya Siram36:58

"A (Not So Gentle) Introduction To Systems Programming In ATS" by Aditya Siram

Strange Loop Conference
26K views • 9 years ago
Lecture 7A | MIT 6.001 Structure and Interpretation, 19861:24:38

Lecture 7A | MIT 6.001 Structure and Interpretation, 1986

MIT OpenCourseWare
35K views • 17 years ago
"Programming Should Eat Itself" by Nada Amin47:41

"Programming Should Eat Itself" by Nada Amin

Strange Loop Conference
43K views • 12 years ago
Lecture 7A: Metacircular Evaluator, Part 11:24:38

Lecture 7A: Metacircular Evaluator, Part 1

MIT OpenCourseWare
32K views • 7 years ago
Philip Wadler  - Propositions as Types (Lambda Days 2016)56:58

Philip Wadler - Propositions as Types (Lambda Days 2016)

Erlang Solutions
20K views • 10 years ago
Simon Peyton Jones - Linear Haskell: practical linearity in a higher-order polymorphic language1:03:34

Simon Peyton Jones - Linear Haskell: practical linearity in a higher-order polymorphic language

Curry On!
19K views • 8 years ago
Brian Beckman: Don't fear the Monad1:07:10

Brian Beckman: Don't fear the Monad

jasonofthel33t
415K views • 13 years ago