Live data from Hacker News

Lil' Fun Langs

taylor.town

11–20 of 26 posts

Re: Lil' Fun Langs

#11
Don't know if my language is considered Lil' enough for this, but it's a pure, lazy functional language based upon Miranda (progenitor language to Haskell) that compiles to x86-64 asm. ~6700 SLOC for the (self-hosted!) compiler, and ~3300 SLOC additional for the extensive library of functional data structures and functions.

https://github.com/taolson/Admiran

Re: Lil' Fun Langs

#12
post #9
post #8

loon is a lisp! https://github.com/ecto/loon [type Shape [Circle Float] [Rect Float Float]] [fn area [s] [match s [Circle r] => [* 3.14 r r] [Rect w h] => [* w h]]] [area [Circle 5.0]]

idk how I haven't crossed a lisp with square brackets but dang I am sorta stunned at how I've never even envisioned it? thanks

No shift key needed for square brackets!

Curl was a proprietary Lisp that {curly brackets} and was designed in the 1990s to build web applications.

https://en.wikipedia.org/wiki/Curl_(programming_language)

Re: Lil' Fun Langs

#13
post #9

Earlier quoted context omitted.

idk how I haven't crossed a lisp with square brackets but dang I am sorta stunned at how I've never even envisioned it? thanks

No shift key needed for square brackets! Curl was a proprietary Lisp that {curly brackets} and was designed in the 1990s to build web applications. https://en.wikipedia.org/wiki/Curl_(programming_language)

I've always found OCaml's (* ... *) comments annoying, because it needs shift for both characters. But I suspect it's easier to type on a french keyboard.

Knuth solves the bracket issue by redefining his keymap to swap () with [] and + with = (macos keymap files found at the bottom of this page: https://www-cs-faculty.stanford.edu/~knuth/programs.html )

Re: Lil' Fun Langs

#14
I've been playing with my own Smalltalk implementation. I guess it qualifies as a tiny _language_, but the class library is huge!

Yes, I know that all who do not understand Smalltalk are doomed to re-implement it, poorly. I'm just cutting out the middleman - and this allows it to do things Smalltalk normally doesn't. It allows me to think so far outside the box it's not even visible anymore.

Re: Lil' Fun Langs

#15
post #9

Earlier quoted context omitted.

idk how I haven't crossed a lisp with square brackets but dang I am sorta stunned at how I've never even envisioned it? thanks

No shift key needed for square brackets! Curl was a proprietary Lisp that {curly brackets} and was designed in the 1990s to build web applications. https://en.wikipedia.org/wiki/Curl_(programming_language)

In high school I tried spec'ing a lang that excluded shift key usage... fun times.

Re: Lil' Fun Langs

#16
post #9
post #8

loon is a lisp! https://github.com/ecto/loon [type Shape [Circle Float] [Rect Float Float]] [fn area [s] [match s [Circle r] => [* 3.14 r r] [Rect w h] => [* w h]]] [area [Circle 5.0]]

idk how I haven't crossed a lisp with square brackets but dang I am sorta stunned at how I've never even envisioned it? thanks

There's a few lispy languages that support using square brackets as an alternative to parens. Racket even has curly braces too.

The above really reminds me of tcl, though, which uses square brackets to force evaluation of the command they wrap.

Re: Lil' Fun Langs

#18
post #11

Don't know if my language is considered Lil' enough for this, but it's a pure, lazy functional language based upon Miranda (progenitor language to Haskell) that compiles to x86-64 asm. ~6700 SLOC for the (self-hosted!) compiler, and ~3300 SLOC additional for the extensive library of functional data structures and functions. https://github.com/taolson/Admiran

I really loved Miranda back when I learned about it. I still have the book. I think it never took off because it was quite expensive for universities to use. Im sure David Turner regrets his price model today. Now he has made Miranda available here https://www.cs.kent.ac.uk/people/staff/dat/miranda/

Re: Lil' Fun Langs

#19
post #9
post #8

loon is a lisp! https://github.com/ecto/loon [type Shape [Circle Float] [Rect Float Float]] [fn area [s] [match s [Circle r] => [* 3.14 r r] [Rect w h] => [* w h]]] [area [Circle 5.0]]

idk how I haven't crossed a lisp with square brackets but dang I am sorta stunned at how I've never even envisioned it? thanks

Keyboards of early MIT systems[1] and Lisp Machines[2] had brackets (parentheses) and square brackets on the same key where square brackets and curly brackets are on modern keyboards.

1: http://xahlee.info/kbd/sail_keyboard.html

2: http://xahlee.info/kbd/space-cadet_keyboard.html

Re: Lil' Fun Langs

#20
post #18
post #11

Don't know if my language is considered Lil' enough for this, but it's a pure, lazy functional language based upon Miranda (progenitor language to Haskell) that compiles to x86-64 asm. ~6700 SLOC for the (self-hosted!) compiler, and ~3300 SLOC additional for the extensive library of functional data structures and functions. https://github.com/taolson/Admiran

I really loved Miranda back when I learned about it. I still have the book. I think it never took off because it was quite expensive for universities to use. Im sure David Turner regrets his price model today. Now he has made Miranda available here https://www.cs.kent.ac.uk/people/staff/dat/miranda/

Yes, the open-source release he did is what introduced me to Miranda. I rewrote a lot of my previous Haskell solutions to Advent of Code puzzles with it, and liked it so much I decided to try to improve on it ;-)

That's what led to Admiran. I originally wrote Admiran in Miranda, then bootstrapped from that to self-hosting when it was stable enough to do so. The original Miranda combinator compiler / interpreter took 20 minutes to compile all of Admiran, while the self-hosted version now takes 20 seconds.

One of the grad students of David Turner has taken up maintenance on the original Miranda source; the repository is now at https://codeberg.org/DATurner/miranda

Post reply on HN