Hacker Newsnew | past | comments | ask | show | jobs | submit | nice_uname_nerd's commentslogin

I don't want to be too mean, but it looks like very little has changed since the six months or so when this last popped up on HN. The book still has none of the exercises that the exposition places so much weight on. Meanwhile, the introduction still mostly tells rather than shows—for all the discussion about how LISP is an elite hacker language, there are no actual examples backing up that statement (IS it in fact widely used by hackers?). Telling me how great LISP is and rambling on about Heinlenian mysticism is not going to work if theres no real substantive material.


Agreed. I bookmarked LLTHW a few months ago when I decided I "need" to learn a Lisp (if, indeed, one can ever be said to truly know a Lisp), but found the extreme WIP-nature off-putting. I think it will be a good resource in a few more years, though.

In the meantime, I've had GigaMonkeys.com open in a separate tab ever since and plan on purchasing the silly "Learn Lisp Through Games!" book.

Edit: But I did find the author's nouveau mysticism/occultism quite interesting. I tend to forget that those belief systems are still around.


This is slightly off-topic, but I think it's worth explaining that I don't have a "belief system", per se. I'm a deductive thinker (which I realize is weird for a programmer), so I find metaphor and allusion to be useful tools for explaining myself. Mystical language, in particular, is very rich, colourful, and goes hand-in-hand with Lisp culture, since the multi-paradigm nature of the language appeals to deductive thinkers. Obviously I have studied psychonautics and chaos magick in some depth, and I was particularly taken by the idea from these modern schools of mysticism, that belief is a tool, that can be wielded to consciously control your own mind, much like (but not exactly like) how a programmer controls a computer by writing software.

As for my own heavily transhumanist "system" of Neuro-Occultism, it's more of a philosophical framework---the basic premise is that all supposedly supernatural phenomena can be explained in terms of psychology, neuroscience, and the physical sciences; that only once you have ruled out the possibility that a supposedly supernatural experience is a purely psychological phenomenon can you begin to model a physical explanation; that the experience of supposedly supernatural phenomena are more interesting and powerful when examined in this light; and that even qualitative systems such as the human mind can be described quantitatively, by adapting research in quantum computer science and biological computation to the field of neuroscience. It's not so different from Cognitive Science, only it emphasizes that once you know that all belief systems are just paradigms, that the human mind can support multiple, simultaneous, even contradictory paradigms, and that your fundamental being is in fact a quantitative system, you can really start to put your brain to work. The problem lies with the fact that the language of the unconscious mind is purely symbolic and associative; thus, a mystical language is necessitated by the structure of our minds---even though a rigorous, mathematical model would be preferable in terms of the scientific method. Lisp, metaphorically applied to the model of the mind, brings us most of the way there.

The purpose of Neuro-Occultism is to develop such a rigorous, mathematical model of consciousness and being; and in so doing, deprecate itself. I see this as an essential aspect of the "technological singularity", both for the realization of emergent machine intelligence, and for the transfer of human consciousness to a computational system---because until such time as the human mind can be understood quantitatively, the singularity will remain science-fiction and fantasy. But then, even the idea of the singularity is a problem, a fundamental limitation of current consciousness that prevents us from seeing past the event horizon of this convergence of technology, biology, individual and social psychology; in order to both achieve the singularity and transcend it, we need to first transcend our own segmented and qualitative perception of self.

There's a lot more I'd like to say on the subject, but that would be a book of its own. Back on topic: I do realize that the heavy-handed mystical tone and Lisp proselytization currently present in the introductory text of LLTHW is useless cruft; I'm a passionate and excitable person by nature, but I recognize that it is holding back the work and interfering with Zed Shaw's methodology. Writing a book is an iterative process, and my effort has been focused on getting a complete scope in order to pump out solid, relevant exercises---so for the time being, I've simply marked the intro chapters as rejected/need-to-be-rewritten. I really hope it won't take me a few more years to finish this book though!


Thanks for responding. To be clear, I don't object to the inclusion of the mysticism, I simply find it intriguing. Most surprising to me were not your beliefs, but that you had coined a term, "Neuro-Occultism," that is utterly ungooglable--the only results returned are your own writings. I spent some time reading your blog where you discussed at length your connections between mysticism and Lisp.

I was disappointed, though, to learn that your place of employment is not strictly Lisp-only.

...Now I feel like a total stalker. It's all a few clicks away from the LLTHW site, I swear!


Haha---it's fine. The internet makes everyone's life an open-book. Which place of employment do you mean, though? As a contractor, I jump around a lot; but I'm also involved with a start-up (but that's still running in stealth mode, so there's not much posted about it online). I have managed to use Common Lisp at nearly every contract or job I've worked at for the past few years though---once employers and clients became more responsive to it again. Even when the job didn't strictly allow it, I used Lisp for code generation anyway.

As to your clarification---yes, that was understood. I was more speaking to the general criticisms about my tendency towards mystical language, since that comes up fairly often. I would be more surprised if there was third-party material discussing Neuro-Occultism, TBH---the occult community at large dislikes it because I deny a metaphysical explanation; and most of the people in the scientific community that I've shown it to dislike it because it even deals with the problem of mysticism (much like Freud criticized the work of Carl Jung for the same reason). How dare I!

That being said, I have been making good progress this year on my adapted process calculus---I'm just putting the finishing touches on the BNF grammar, and then I can begin testing its logical consistency and writing proofs. Once it's finished, I'm hoping to be able to describe physics, quantized consciousness, quantum and classical computing all with the same notation. Fingers crossed.


I've been working on LLTHW pretty much every day since LLTHW was first posted on HN, but as I said in my reply to austenallred, I'm still working on shaping the content, in order to have a very clear work-plan to follow as I write the exercises. I'm hoping that my progress will be more visible once I have finished scoping the content of each chapter.


I don't think the problem here is functional programming, it's the author's over-eager use of category theory to describe something simple. In particular we're just talking about all possible lists you can create in LISP, so do we really need to resort to free monoids? The language of category theory is greate for describing complicated structures like tensors and sheaves and what have you, but in this example it's not really helping.


It's more than just strings though, it's all lists on a set of atoms. (a b c) is treated differently from (a (b c)).

EDIT: Actually you're right, it's all strings on X. I thought the author wanted all lists on X.


I strongly disagree. Using the right tool for the right job is worth far more than enforcing arbitrary universal consistency. In a math course, you'd measure angles in radians so you're dealing with nice small multiples of pi. I think it'd be downright dangerous to use radians in a fighter jet, say, when the precision you need is much better provided by degrees.

Imagine if we enforced only one programming paradigm, since they're all equivalent. Or if we demanded that logicians and cs professors only prove things using turing machines, instead of picking the model of computation that best suits the problem. If there's a case where the english measurement system is more convenient, people should use it.


You just get used to whatever units you're working in. If you'd been trained in radians when learning how to fly, everything would be fine. It would be funny though to hear ATC clear someone to land on runway pi/2. That's probably not as succinct as runway 9, but people would be used to it if they learned it in their primary training.

The real problem though is switching costs. There are tens of thousands of planes out there and more than a million pilots. To switch all of the compasses, GPSs, flight computers, heading indicators, etc. as well as retrain a metric pantload of pilots would be ludicrous for no appreciable gain.

Canada suffered through a problem similar to this when it went metric, and ended up with the Gimli Glider. http://en.wikipedia.org/wiki/Gimli_Glider

Don't get me wrong though. I love the metric system and think it's great, however first and foremost we are creatures of practicality. If US dominance in the world slips over the next few generations, I would imagine it will at some point join the rest of the world and abandon imperial measurements.


"A foolish consistency is the hobgoblin of little minds, adored by little statesmen and philosophers and divines." - Ralph Waldo Emerson


>Using the right tool for the right job is worth far more than enforcing arbitrary universal consistency.

Except units of measure are not "tools"...they are ways of communicating information. And when each person feels the need to enforce their own version of "right tool for right job" then things like the mars orbiter incident happen.

>Imagine if we enforced only one programming paradigm, since they're all equivalent.

Hardly. A better analogy would be to enforce identical calling parameters for DLLs libraries across all languages. That would benefit all languages and improve interoperability.


>units of measure are not "tools"...they are ways of communicating information.

How you communicate information is important and has real impacts. Given a graph, you could choose to encode it as an adjacency matrix or as a collection of adjacency lists. Both convey the same information, but nobody would say we should pick one and only one. I disagree with the assertion that measurement units aren't tools or that they are exempt from similar consideration.

Sure, the Mars incident is a call for consistency, but it's a call for consistency inside NASA. That shouldn't affect carpenters who need divisibility by 2, 3 and 4 more than they need 5. Or those who like to use inches because theyre significantly larger than centimeters and consequently easier to approximate by eye.


>Sure, the Mars incident is a call for consistency, but it's a call for consistency inside NASA.

No its not. Realistically space travel is going to be a humanity as a whole deal, not "inside NASA". Remember that the USA is like 4% of the world population. Even if the US contributes 10x more than everyone else per person that still puts the US in the minority. Consistency here is not a "nice to have"...its mission critical.

>That shouldn't affect carpenters

So you propose teaching your future carpenters and space engineers different units of measure?

>approximate by eye.

Approximate by eye? Seriously? Intel is aiming at 10 nanometers. Nobody is eyeballing anything in the modern world. Note...nanometers not nanofeet...this from an American company.


> No its not. Realistically space travel is going to be a humanity as a whole deal, not "inside NASA".

I think it's a fair bet that when spaceflight becomes widespread and commonplace, we're going to have many discrete groups of people developing, producing, operating, and maintaining their own particular spacecraft independently of each other, and not "humanity as a whole", as a singular undifferentiated mass, working on a single uniform spaceflight project.

Consistency within a specific project is clearly necessary; uniformity among distinct projects is, speaking at the macro level, a liability. Variation is an evolutionary advantage; artificial uniformity slows progress.

> So you propose teaching your future carpenters and space engineers different units of measure?

Why would this even be a question? Should programmers only be familiar with one single programming language? Should people in general only ever learn to speak a single verbal language? Is there ever an advantage to only being familiar with a single set of tools, and ignorant of all others?

> Nobody is eyeballing anything in the modern world.

Most people are eyeballing most things in the modern world. It's only in the case of activities on the scale of building spaceships and 10-nm-process integrated circuits that people require the level of precision that you're talking about. The vast majority of human activity remains outside of these domains.

The original article was about American resistance to adopting metric units as a default practice in day-to-day life, and not about the use of the metric system by people engaged in highly specialized disciplines. It'd be a bit absurd to suggest that the measuring units selected for high-precision work by the small set of people currently working on microprocessor design are necessarily the optimal ones for e.g. baking a cake or tiling your bathroom. In the latter use cases, one could make a very compelling case that units optimized for alignment with intuition are vastly more useful than ones optimized for micro-scale precision.


>Consistency within a specific project is clearly necessary

I'll concede that it only matters within a project...but projects invariably consist of many people and each of them "think" in their unit of measure. Sure you can mix them and hope they remember to "think" in metric at 1AM when pushing for a deadline, but really...

>Is there ever an advantage to only being familiar with a single set of tools

Thats the thing. These are not tools. They are units of measure. Aside from the odd instance where its easier to divide by X all you're gaining from using many units of measure is chaos.

>Most people are eyeballing most things in the modern world.

Definitely. Eyeballing happens regardless of unit of measure. And usually when someone is eyeballing it its not life/death.

>It'd be a bit absurd to suggest that the measuring units selected for high-precision work by the small set of people currently working on microprocessor design are necessarily the optimal ones for

Absurd indeed, but not what I was getting at. Units of measure is something thats internalized from a high-school age. So unless you have a way of splitting the kids between space engineers and carpenters at that age then why tech imperial? And even if you could split them, the mix of units of measures employed nationally would be much worse than randomly picking one.

I get that Americans are attached to imperial...its just very difficult for everyone else to under why given this: http://i.imgur.com/YJzhkZl.jpg


> but projects invariably consist of many people and each of them "think" in their unit of measure.

Obviously, you'd assemble project teams who are familiar with the tools, techniques, and conventions that you intend to use with your project.

> Sure you can mix them and hope they remember to "think" in metric at 1AM when pushing for a deadline, but really...

And the Chinese engineer who's working on a project where all of the documentation is in English might slip up when he's punchy at 1 AM and accidentally complete some of his work in Chinese.

This is a good argument for making sure that team members are well-rested and alert while doing their work. It's also a good argument for scheduling work reviews, proofreading, and time for correcting errors in the project plan. It's not at all an argument for abolishing the Chinese language.

> Thats the thing. These are not tools. They are units of measure.

Units of measures are tools. Tools are devices, whether physical or conceptual, that we use to extend our capacities for interacting with the world. In this case, since human beings do not natively have the capacity to quantify continuities, we apply the tool of measuring units to break continuities down into discretely countable chunks.

And, like all tools, how well they work depends on what goals you're trying to accomplish, and in what order of priority, in a given set of circumstances. Metric units are great in a limited set of contexts in which uniformity of post-hoc representation is more important than practicality in the activity of measurement itself; but this means that they are, for the same reason, less effective than customary units for the vast majority of situations that involve measurement.

> Definitely. Eyeballing happens regardless of unit of measure. And usually when someone is eyeballing it its not life/death.

Very few situations are matters of life and death, and in those rare circumstances that are, people will naturally be cautious and rigorous in their methods: I'd expect people to use precise measuring instruments, and to perform measurements multiple times, so in such a situation, questions of familiarity with particular units are scarcely relevant. When you're relying on the precision of instruments, the actual measuring units you're using are less important: metric, imperial, or otherwise, they'll all work just as well.

> Units of measure is something thats internalized from a high-school age

I don't know how much anyone "internalizes" any measuring units, but to the extent that they familiarize themselves with theDefinitely. Eyeballing happens regardless of unit of measure. And usually when someone is eyeballing it its not life/death.m, there's certainly no cause to familiarize oneself with only one set, at the exclusion of another.

> So unless you have a way of splitting the kids between space engineers and carpenters at that age then why tech imperial?

How about we keep doing things the way we are - teaching everyone both sets of units - and letting them determine for themselves which ones are most useful to them for each particular application?

> I get that Americans are attached to imperial...its just very difficult for everyone else to under why given this: http://i.imgur.com/YJzhkZl.jpg

All that graphic demonstrates to me is that while, with imperial/customary measures, there are a variety of separate base units to choose from, each appropriate to a particular scale of operation, the metric system only offers one base unit, and pretends that applying a 10^x coefficient to that single base unit somehow makes it a different unit.

That's what you're not getting: feet, yards, inches, etc. are fundamentally distinct units that have been tweaked to relate to each other, where necessary, by factors that are often much more convenient than 10. But you're just as capable with customary units as with metric of sticking with a single unit and applying scaling factors: I can just as easily say e.g. 24.2 x 10^4 feet as 45.83 miles.

I can even use metric prefixes if I'm so inclined, and say 24.2 kilofeet! Or 2.9 megainches! All the same value. But using these prefixes is just a bizarre re-implementation of scientific notation: in what way does it make sense to encode quantitative information as a verbal prefix appended to the name of the thing you're counting, instead of just using numbers?


Wow, I would not have believed someone would make the argument that everyone needs to use metric because some day we'll all be in space until I read it. Thanks for broadening my horizons.


Degrees are no more precise than radians. If you're a human you use a certain number of digits and they both work. If you're a computer using integers you're far too imprecise either way. If you're a computer using floats they are equally precise. If you're a computer using fixed point you're better off with something like 2^32ths of a circle.


If you haven't seen any category theory, you might be interested to know that the diagrams the author draws are valuable and important in modern pure math as well. Those last two diagrams totally capture the idea of what a product or variant (coproduct, in math terminology) is.

In general, there are a lot of algebraic structures whose essence is captured by some diagramatic property like these, such as tensor products or fiber products. They're called universal properties. Unfortunately the wikipedia page looks pretty poorly written, but you might find it interesting nonetheless.

http://en.wikipedia.org/wiki/Universal_property


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: