NoahTheDuke

Joined 14 years ago

Karma
248
Submissions
137
Member since
Nov 9
[ my public key: https://keybase.io/noahtheduke; my proof: https://keybase.io/noahtheduke/sigs/fOrvGi6SaQrDc1FDmxj-UE8IFlTnvGjepWCLas1DLx0 ]

My views and posts are my own.

View on Hacker News

Recent submissions

Comment · 3 years ago
Thanks.
Comment · 3 years ago
Congrats! This looks super cool.

Are there any plans for exposing a Clojure API? Given that it's implemented in Clojure, seems like it would be a natural fit. Interop with Java is nice but can be cumbersome compared to the more natural calling conventions and idioms (threading macros instead of `..` builder patterns, etc).

Comment · 3 years ago
> I am sorry, but I have to disagree.

You disagree that they enjoyed the article?

Comment · 3 years ago
Reader macros/literals allow for explicitly differentiating between built-in data types, and provide semantic meaning to otherwise indistinguishable forms. For example, defining a function:

In Racket, you write `(define (foo arg1 arg2) (+ arg1 arg2))`. Why isn’t `(foo arg1 arg2)` evaluated as a function? It’s a list and it isn’t quoted, so it should be evaluated. However, `define` is a macro (I think, might be a special form), so that list isn’t evaluated and doesn’t have to be quoted. That violates the basic tenant of “unquoted forms wrapped in a list are evaluated as fiction calls.”

In Clojure, you write `(defn foo [arg1 arg1] (+ arg1 arg2))`. The [] is a reader macro, a vector literal. It communicates that it’s not a function call but simply data (in this case, a vector containing two symbols).

Maybe I’m just used to it but I find this stuff really helpful.

Comment · 4 years ago
> don't mix and match words and symbols

This is an interesting design decision. Why don’t you want to combine them?

Comment · 4 years ago
Other workflows exist; pretty silly to act like you’ve found the One True Way.
Comment · 4 years ago
I roughly agree with you but in your deps.edn example, how would you like the tool to respond? Your map/dictionary/object has an uneven number of forms, so what else would you like it to say?
Comment · 4 years ago
Adam Neely is fun “pop science” about music but this one in particular is a real treat. Love the cover of the song by Martina de Silva here too.
Comment · 4 years ago
I just tried breezethat and had to scroll past 6 ads (two screenfuls on my iPhone 10) to see a single result. I know ads are necessary but this is punitive.
Comment · 4 years ago
Wow, massassi.net is quite a trip through time. I spent many many hours on your site, playing Jedi Knight with friends and randos through GameSpy. Endless hours of entertainment toying with JED, trying to perfect my own levels, or installing various mods and texture packs.

Thank you for the effort, you gave me quite a few cherished memories.

Comment · 4 years ago
Clojure has that built-in and it’s great. Works wonders when testing things too: write a small test in a comment block and you can edit/evaluate a function then move to the comment and see the result immediately.
Comment · 4 years ago
I love that “hacking language learning” turns out to be “mostly do what babies do”: consume as much content as possible. Babies take it one step further by trying things without embarrassment or any attempt at “getting it right”, only focused on raw communication.

Not to denigrate the efforts of folks who study and practice “the act of language acquisition”, I’ve just been surprised and delighted to watch my now 2 year old daughter learn to speak, which has made me think about how different her experience of “learning a language” is from all of my poor attempts at learning foreign languages.

Comment · 4 years ago
I wonder if a `loop`/`recur` construct like the one Clojure has would help here. Allows for closing over data without having to pass everything into a recursive function, and can handle more complex looping constructs without having to write an explicit "for loop".
Comment · 4 years ago

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton