Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
kbp
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
12 ms
·
61.
▲
by
kbp
8y ago
> Yes but good luck with React.createElement(). React without JSX is really a pain to use (or Preact, Inferno, etc). What's painful about it? I prefer it without JSX, personally; JSX is a pretty simple syntax transform that doesn&#x
62.
▲
by
kbp
8y ago
I think those "easy" examples are too easy to get any meaningful signal from. If they struggle, they have no idea what they're doing, and if they don't, you don't really learn anything about how they work because th
63.
▲
by
kbp
8y ago
Duolingo has notes explaining the grammar as it introduces it, for the most part, and the grammar gets reasonably sophisticated by the end. Not really what I'd call complex nuances, but probably equivalent to a year or two of universit
64.
▲
by
kbp
8y ago
> When design patterns came along, Java folks talked about them as though they were a wonderful new invention. But they only exist because Java is so clumsy that it needed crutches to do things that had been easy and natural in oth
65.
▲
Prince Rupert's drops
(en.wikipedia.org)
2 points
by
kbp
8y ago
|
0 comments
66.
▲
by
kbp
8y ago
> Complicated pointer-type data structures like linked lists If a singly linked list is a complicated data structure then what's a simple one?
67.
▲
by
kbp
8y ago
It's too early to say. Clojure's still very young in Lisp terms, so it's natural that it has more hype around it now than languages that were cool 30 years ago. It's also not exactly taking over the world, and I think yo
68.
▲
by
kbp
8y ago
What do you mean by the last paragraph? foldl in Haskell is just foldl _ acc [] = acc foldl f acc (x:xs) = foldl f (f acc x) xs And in Python something like def foldl(f, acc, l): for x in l: acc =
69.
▲
by
kbp
8y ago
The standard says "If the expression is a constant expression, it shall have a value greater than zero." Clang gives me a warning that "static 0" has no effect. NULL is valid as a pointer to a 0-length array, so that mak
70.
▲
by
kbp
8y ago
I agree that there's a problem of people (even the people who rave about how enlightening it is) misunderstanding that a toy Scheme interpreter is what Lisp is, but I don't think that's an issue with Scheme. Introductory FP c
71.
▲
by
kbp
8y ago
> If you call a function that happens to refer to a variable that only exists in the calling code, it will work Could you give an example of what you mean by this?
72.
▲
by
kbp
8y ago
I think it's very common in discussions like this for people to conflate 'Python vs Scheme' with from-first-principles (lambdas, explicit recursion) vs building-real-things as pedagogical approaches. In a lot of people's
73.
▲
by
kbp
8y ago
One nice feature of blocks is that `return` will return from the enclosing function, rather than the block, so you can write: def find(x, l) l.each do |y| return y if y == x end end Where in Lisp you'd
74.
▲
by
kbp
8y ago
Trailing whitespace also makes jumping to the end of a line or moving back over a newline not take you where you expect, which is annoying when it breaks your flow. It's only ever a mild nuisance (in that scenario or for diffs), but th
75.
▲
by
kbp
8y ago
There's an SRFI for generalised set! that lots of implementations (Racket, Guile, Chicken, etc) support: https://srfi.schemers.org/srfi-17/srfi-17.html
76.
▲
by
kbp
8y ago
> A little more detail here: it has a lot more namespaces than that. And I don't think the function/value split is even the most important namespacing it does with regards to macro hygiene ("functions are less likely to be
77.
▲
by
kbp
8y ago
> it seems to prefer blocks to lambdas What does this mean?
78.
▲
by
kbp
8y ago
The first example saves you from thinking about indexing; arrays and loops are relevant in both.
79.
▲
by
kbp
8y ago
> Then parenthesis, square brackets, and curly braces help me easily find lists, vectors, maps, and sets just from a quick visual scan of the code. How often do you want to do that? Wouldn't you be more interested in what the vari
80.
▲
by
kbp
8y ago
You misunderstood. I only used blindness for the specific example where you used blindness (the only specific example of affecting someone with a disability that you gave; why would that be harder for a blind person?). Most of your points d
81.
▲
by
kbp
8y ago
By using something like Paredit to navigate the source by list structure. Reading and navigating are kind of mixed together.
82.
▲
by
kbp
8y ago
> Bracket loop bracket print bracket eval bracket read bracket bracket bracket bracket? It would say "left paren" and "right paren." It's not terribly hard to keep a stack in your head of how many close parens yo
83.
▲
by
kbp
8y ago
I don't understand what most of these points have to do with accessibility. Why would a blind person have more trouble with the fact that "x + y" might be addition or string concatenation than a sighted person? Why would comp
84.
▲
by
kbp
8y ago
I think the places where it does use punctuation are a lot more friendly to people with low vision than most languages: you never use awkward combinations like '),' where it's easy for the comma to blend in with the bracket (
85.
▲
by
kbp
8y ago
> And then, as others have mentioned, it's hard to find Lisp programmers. Most programmers are turned off by the [...] immutability. Most Lisps have very little in the way of immutability (except for C-style "undefined behaviou
86.
▲
by
kbp
8y ago
> but as a LISP most people aren't going to be excited about using it. I agree that Clojure has a lot of strong points and that s-expressions probably put a lot of people off, but as a Lisp programmer, I was very disappointed in Clo
87.
▲
by
kbp
8y ago
> Because Common Lisp is such a complex language, there are a few places where I have chosen to simplify things to better meet the needs of beginners. For example the 1+ and 1- functions are banished from this book because their names ar
88.
▲
by
kbp
8y ago
`input` isn't READ, it's READ-LINE. READ reads one Lisp form, even if it's more than one line, and even if there are more than one on one line. Python's `eval` also isn't sufficient here. For example, you cannot ent
89.
▲
by
kbp
8y ago
> I do consider strong typing mandatory. That was my problem with Ruby What isn't strongly typed about Ruby?
90.
▲
by
kbp
8y ago
You can specialise generic functions on built-in classes in standard CL. Lisp methods are specialisations of generic functions; they don't belong to a class in the way methods do in eg C++. The issue you're talking about is that n
More ›