1,913 karma · joined March 29, 2016
But then I realised that that's not true. For example, call-by-value and call-by-reference are pretty pervasive across languages: many of those examples would've worked the same in Java, say. It's not familiarity with Python, but rather familiarity with a certain kind of language (which admittedly constitutes the majority of those used in industry ATM) that the test demands, at a time when even Java is getting nice FP-like abstractions and the JavaScript community is cooking up all sorts of ways to bring the benefits of that kind of thinking to their own work (from React/Redux all the way to Ramda and the like).
If you're more used to languages that "get out of the way" by eliding what could very well be termed "implementation details" (e.g. is there any reason[0] to use call-by-reference in the absence of global mutable state given a "sufficiently smart optimizing compiler"?), I'd predict (n = 1) that you'll be more likely to make mistakes.
I would've done far better on this quiz back when I was playing with matplotlib as an eighth- or ninth-grader: apart from the token map implementation, the quiz really favors knowledge of counterintuitive behavior common in "mainstream" imperative languages over an understanding of "composability" that users of modern functional languages are used to. (And no, that doesn't only mean Haskell or "ultra-Haskells" like Idris, but also languages like OCaml, F#, and so on.)
It would be much nicer if the quiz could be less about the candidate coaxing her preferred meaning out of a language implementation and more about testing the meanings a candidate knows how to implement with the help of the language.
[0]: For instance, the standard reaction to things like
sum (map (\x -> x ** 2) (map (\y -> sin (y * pi / 10)) [0..9]))
is that a single for-loop is better than this for "real-world purposes". That is very false: the Haskell vector package is usually capable of efficiently fusing the code above into exactly what one would've written by hand.https://www.schoolofhaskell.com/user/commercial/content/vect...
At the risk of going all peak-HN, these things are more a problem with implicit, nonuniform behavior which well-designed languages solve with abstractions like the Copy trait in Rust or even C++ move semantics.
> Right now, you’ve probably formed a mental image of who Christopher is, and you might be wondering why I’m opening my speech with his story. When you think about who does mathematics–both who is capable of doing mathematics and who wants to do mathematics–would you think of Christopher?
Francis Su's retiring address as the President of the Mathematical Association of America is one of the most powerful things I've ever seen.
https://www.youtube.com/watch?v=xEtDvc1SWm8
There's a transcript on his blog, too:
https://mathyawp.wordpress.com/2017/01/08/mathematics-for-hu...
In real life, that's sort of like having access to the answers when you're given the questions. Being trained in that environment won't do much good.
(I think so, at least. Not too sure.)
Most of my interest stems from this excellent project in Racket that's shaping up to be quite something:
https://github.com/lexi-lambda/hackett
It uses the "type systems as macros" paper's approach to create a Haskell-like language in Racket.
(btw, I think you meant e.g., not i.e.)
I wonder what the upcoming linear types work will do.
[0]: Here's a delightful classic with pictures: http://blog.sigfpe.com/2009/05/three-projections-of-doctor-f...
http://newartisans.com/2017/04/haskell-and-z3/
It leverages some cool work of Conal Elliott that develops (formulas in) cartesian closed categories into something like an "intermediate representation" for functional language compilation.
http://conal.net/blog/posts/haskell-to-hardware-via-cccs http://conal.net/blog/posts/overloading-lambda
http://conal.net/papers/compiling-to-categories/ (the "LaTeX goals" ICFP 2017 paper)
--
Also, something I always like to link when this kind of thing comes up: the salamander lemma!
https://sbseminar.wordpress.com/2007/11/13/anton-geraschenko...
https://mathoverflow.net/questions/6749/a-proof-of-the-salam...
Considering that I know some German (~B1), could this work out for me?
as texts and philosophy, yes, as works of fiction-unless-evidenced-otherwise, as literature that chronicles a staggering amount of human history, large-scale social organization, belief and gullibility and "leaps of faith", the search for meaning, and so on.
They are very useful as books.
I do not mean to start a tangential flamewar, but the ability to accept and be comfortable with not knowing, while at the same time believing that the unknown is not unknowable, is something a certain kind of religious worldview precludes. This is one thing which I realised quite early on that my parents didn't share my beliefs on: for them, there's some underlying agent that chooses what happens in situations that we call random or do not understand:
"I don't know why this happens, but there's no reason why we never should/it's not computable/etc."
"Ah, child, it's time to accept things as they are. When I do not understand, I say God's causing it to happen."
It's a confusing mixture of the different positions one can take on determinism coupled with a sort of complacence I find remarkable.
https://news.ycombinator.com/item?id=14124411
to these:
https://news.ycombinator.com/item?id=14149200
https://news.ycombinator.com/item?id=14016438
Getting "in" when a post has few comments and is going to attract a lot of comment readership quickly or stay on the frontpage for a while is probably more important than pure comment quality.
https://en.wikipedia.org/wiki/Sokal_affair
although that had different goals.
It seems like there's a way of taking some part of speech, adding a suffix to turn it into a different one, and then adding another suffix to turn it back into the original kind, then declaring that the meaning of the word thus constructed is now whatever one chooses it to mean. So the meaning of the original word is subconsciously palpable, but you make yourself see the new word differently and there's a bit of tension.
Does that translate to something like "openability"? (I've had the occasional brush with Heideggerian terminology before.)