3 ms·
> Brainfuck. I'm not kidding. Brainfuck is to Turing machines as Lisp is to lambda calculus. Knowing how to program Turing machines with pen and paper is also u
by andylei 15y ago
> Brainfuck. I'm not kidding. Brainfuck is to Turing machines as Lisp is to lambda calculus. Knowing how to program Turing machines with pen and paper is also useful.
... why? when was the last time that turing machines were useful to you?
- exDM69 15y agoThe last time I've used Turing machines was when I was trying to build one in Minecraft using redstone and pistons. But in general, Turing machines are a useful mental model when thinking about the fundamental nature of algorithms as well as when trying to reason if some non-trivial problem is computable or not. And in general, knowing Turing machines and being able to write Brainfuck is exactly the kind of mental game that will help you think and approach problems in a new way. And besides, writing Brainfuck is a helluva lot of fun!
- ColinWright 15y agoIt's not the doing that matters, it's that abilities that get sharpened. No, I'm not going to be specific, because it's different for every person, but learning things like this help, even if you never actually use them as they are. Doing calculus has helped me because it improved and shaped the way I think about how things evolve through time and space. Learning topology has helped me because I can picture inter-relationships as weird spaces, not just as lists of rules. Learning to juggle has improved my spatial awareness, and my abilities to gestalt patterns. I don't differentiate or integrate on a daily basis. I don't prove theorems about metric, Hausdorff or Baire spaces, and I don't stand up on stage to perform as a juggler for audiences. Nevertheless, the learning has had beneficial effects elsewhere. Sometimes it's not the skill itself that matters, it's the learning of the skill. To think otherwise is to tread an overly narrow path that leads to looking at everything new and saying "When am I ever going to use this?"
- 127 15y agoBrainfuck just might be the easiest language to actually implement. It's a learning experience and can provide a minimal understanding of how programming languages work. I'm sure someone can write the whole language in one line of Perl. The programs may not be pretty, but neither are programs written in lambda calculus.