Live data from Hacker News

The Little Typer (2018)

thelittletyper.com

31–40 of 45 posts

Re: The Little Typer (2018)

#31
For those looking for a more straightforward approach to type systems, here are two resources I like:

1: Terence Parr's chapter "Enforcing Static Typing Rules" from Language Design Patterns.

2: Eli Bendersky's Python implementation of Hindley-Milner type inference.

--

1: https://pragprog.com/titles/tpdsl/language-implementation-pa...

2: https://eli.thegreenplace.net/2018/type-inference/

Re: The Little Typer (2018)

#32

What modern scheme is best to use for these "the little x'er" book series? Some of them suggest their dialect (like learner suggests Racket I think), but what about others? In short, what scheme is the most practical and useful nowadays? Here is the result of my research so far, in order of preference according to the above requirements: Guile: most active community, GNU glue language, Guix Chicken: most pragmatic on…

Racket! This is the language that the common author (Dr. Daniel Friedman) uses, and many of the Little books use custom DSLs implemented in Racket.

Racket now runs on Chez under the hood (inheriting the performance), and has a pretty decent ecosystem as far as schemes go.

(I TA for Dr. Friedman’s programming languages course)

Re: The Little Typer (2018)

#33

What modern scheme is best to use for these "the little x'er" book series? Some of them suggest their dialect (like learner suggests Racket I think), but what about others? In short, what scheme is the most practical and useful nowadays? Here is the result of my research so far, in order of preference according to the above requirements: Guile: most active community, GNU glue language, Guix Chicken: most pragmatic on…

Guile probably has the best Emacs integration through Geiser. While you don't really need it and you can just follow along with a terminal REPL, using something like Geiser helps keeping the experience smooth.

MIT/GNU Scheme comes with its own editor, edwin, which is a terminal-only Emacs-like. I don't know how much it complies with the various RnRSes, but I do believe it's good enough to work for the Little series.

Gauche is R7RS-small (and I believe -large up to Tangerine) compliant so it should just work. It also has fairly good Geiser support and comes with an enormous standard library, 'batteries included' as they say, though its performance is a bit lower than some of the other implementations.

Cyclone is R7RS-small compliant so it should work. It seems fairly fast and it has a package manager, but because it's fairly new I don't know how well it works with Geiser.

Loko is R6RS compliant so it should work. I believe the documentation says that it should work with Geiser using the Chez module, but I may be mistaken.

Gerbil is R7RS-small compliant (and I believe -large through Red, maybe through Tangerine?) so it should work. I believe it's also quite performant, though I haven't used it.

Kawa is R7RS-small compliant if I'm not mistaken. If so it should work for the Little series. It also has a Geiser module.

And then there are a few implementations of which I'm not entirely sure which version of the spec they comply with and how well they're supported by various editors (though I think SLIME has Scheme support, although that may only be for MIT/GNU Scheme): Gambit (I think R5RS? Gerbil is built on top of it), Bigloo (I think R6RS?), Larceny, Chibi Scheme, Biwa Scheme, S7, and IronScheme. For any of those, as long as they support post R4RS macros (so using `define-syntax' and `syntax-rules' instead of `defmacro)' they should work for the Little series without any adjustments. If they're still using `defmacro' then you'd need to translate the macro definitions from Reasoned (and later?), which isn't that hard... but if you're gonna do that you may want to read On Lisp after Seasoned.

Re: The Little Typer (2018)

#34

What modern scheme is best to use for these "the little x'er" book series? Some of them suggest their dialect (like learner suggests Racket I think), but what about others? In short, what scheme is the most practical and useful nowadays? Here is the result of my research so far, in order of preference according to the above requirements: Guile: most active community, GNU glue language, Guix Chicken: most pragmatic on…

This is the last thing I'd worry about. The series isn't about teaching you a language you can use later in industry. It's about teaching you higher-level concepts you can take with you to any languages you may encounter in the future.

Re: The Little Typer (2018)

#35

As a retired electrician attempting hobby-level "learn to code" (i.e. I don't know anything about modern programming and did not even understand anything from OP's link), this Amazon review helped me understand OP's link: >..I’ve been (slowly) working my way through The Little Typer. It’s a deep dive on dependent types, starting with the very basics and building up a toy language one step at a time. I can feel it gra…

I'd say a Lisp and books like little Schemer, etc. are a perfect way to study programming and computer science. Later on you could have a look at SICP (Structure and Interpretation of Computer Programs) which also uses Scheme, but is more advanced than Little Schemer. It's one of my all time favourite CS books.

Re: The Little Typer (2018)

#36
post #21

As a retired electrician attempting hobby-level "learn to code" (i.e. I don't know anything about modern programming and did not even understand anything from OP's link), this Amazon review helped me understand OP's link: >..I’ve been (slowly) working my way through The Little Typer. It’s a deep dive on dependent types, starting with the very basics and building up a toy language one step at a time. I can feel it gra…

I’d recommend the earlier book in the series, The Little Schemer, for what it’s worth! It’s more aimed towards beginners. Similar format to this book.

I'll second The Little Schemer. I found it weird and wonderful in beautiful way.

Re: The Little Typer (2018)

#37

As a retired electrician attempting hobby-level "learn to code" (i.e. I don't know anything about modern programming and did not even understand anything from OP's link), this Amazon review helped me understand OP's link: >..I’ve been (slowly) working my way through The Little Typer. It’s a deep dive on dependent types, starting with the very basics and building up a toy language one step at a time. I can feel it gra…

> Maybe some day I'll motivate myself to even figure out how to first install Racket/Pie (first, I have to figure out what even these are).

If you're retired and don't need to do the Webrogrammer grind of employable skills, that's a great time to learn advanced/alternative topics of programming like this.

(But if you instead want a paying second career, you probably want to either focus on Web or phone app development instead of this, or have a personal connection to get a job in some less-common area of software development. The Little Typer probably won't help you with that.)

I suspect that the book will do a good job of explaining its topic, from scratch. Here's how to install the software that the book uses:

1. https://download.racket-lang.org/

2. > Open DrRacket and select "Install Package" from the "File" menu. In the package name field, type pie and then click the "Install" button.

Re: The Little Typer (2018)

#38
post #26

Earlier quoted context omitted.

>The Little Schemer Inially wasn't sure if your comment was "a joke," but thanks for the real introduction: amazon.com/Little-Schemer-Daniel-P-Friedman/dp/0262560992/ [link to book]

Friedman's books are all great. All of them. But they don't work for everybody. If you can be relaxed and think of the interaction as play, they're very good. If you're feeling more of a "serious business" mindset, it can be hard to get in the groove of his style. There are a lot of jokes about food and encouragement to take breaks. If you can get into the learning as play mindset, I'd strongly encourage taking the r…

So, what's the recommended Scheme implementation to "get things done", and not only for learning CS stuffs?

For example, now our backend system is mostly implemented in Go (some with Fiber, some with Echo). The rest are pretty common: Postgres, Mongo, Firebase etc.

Perhaps Gambit? BTW, I have nothing against experimentation. Not everything have to do with practical purpose on mind. That's why I'm also tinkering with Haskell & Ocaml :D

Re: The Little Typer (2018)

#39
post #38
post #26

Earlier quoted context omitted.

Friedman's books are all great. All of them. But they don't work for everybody. If you can be relaxed and think of the interaction as play, they're very good. If you're feeling more of a "serious business" mindset, it can be hard to get in the groove of his style. There are a lot of jokes about food and encouragement to take breaks. If you can get into the learning as play mindset, I'd strongly encourage taking the r…

So, what's the recommended Scheme implementation to "get things done", and not only for learning CS stuffs? For example, now our backend system is mostly implemented in Go (some with Fiber, some with Echo). The rest are pretty common: Postgres, Mongo, Firebase etc. Perhaps Gambit? BTW, I have nothing against experimentation. Not everything have to do with practical purpose on mind. That's why I'm also tinkering with…

Racket, Guile, Gambit, Chicken Scheme, chez are all pretty solid with different trade-offs. I think Racket has a fairly decent developer experience and others like chez and gambit are great implementations but may be lacking in tooling (in the sense that you won’t get a nice package manager or build tool). Options exist (like Akku) but IMO the scheme ecosystem is somewhat disjointed.

Guile integrates well with C, and uses the same build tools as a lot of the GNU ecosystem (make and autotools).

I recognize the answer isn’t maybe the most helpful but it does exemplify, in my opinion, one of the challenges with using Scheme for getting things done.

Re: The Little Typer (2018)

#40
post #21

Earlier quoted context omitted.

I’d recommend the earlier book in the series, The Little Schemer, for what it’s worth! It’s more aimed towards beginners. Similar format to this book.

>The Little Schemer Inially wasn't sure if your comment was "a joke," but thanks for the real introduction: amazon.com/Little-Schemer-Daniel-P-Friedman/dp/0262560992/ [link to book]

The Little Schemer is one of my top two favorite programming books. But it's not something I'd recommend as a way to learn how to do the programmer job. It's fun and useful in the way that dropping acid is fun and useful, at least from what I've been told as a teetotaler who's never tried anything stronger than Tylenol. When I read that book, it has a long-lasting aftereffect on how I approach problem solving and maybe the world in general.

I have non-data-driven (but informed) opinions on how to pick up coding as a new skill. I think it helps to find a hobby space you're interested in that will motivate you to push through when you get stuck on something. There are some great platforms for live-tinkering with electronics, CircuitPython for example. Or web stuff, if there's a way to get into it in 2024 without being overwhelmed by frameworks and complexity.

Post reply on HN