1,820 reputation
815
bio website uptoisomorphism.com
location falling down all these questions
age 31
visits member for 3 years, 4 months
seen Sep 22 at 16:39

C. McCann


Proud member of Concerned Programmers Against General Recursion!

"If it ain't broke, don't fixpoint it!"


"If you want more effective programmers, you will discover that they should not waste their time debugging, they should not introduce the bugs to start with." -- EWD

"The utility of a language as a tool of thought increases with the range of topics it can treat, but decreases with the amount of vocabulary and the complexity of grammatical rules which the user must keep in mind. Economy of notation is therefore important." -- K. Iverson

"Civilization advances by extending the number of operations which we can perform without thinking about them." -- A. N. Whitehead

Entia non sunt multiplicanda praeter necessitatem.


Jun
3
awarded  Yearling
Apr
25
awarded  Good Answer
Jun
3
awarded  Yearling
Apr
26
awarded  Nice Answer
Apr
25
comment In functional programming, are local mutable variables with no side effects still considered “bad practice”?
Your point about memoization is very good. Note that Haskell strongly emphasizes referential transparency for programming, but the memoization-like behavior of lazy evaluation involves a staggering amount of mutation being done by the language runtime behind the scenes.
Apr
25
answered In functional programming, are local mutable variables with no side effects still considered “bad practice”?
Apr
22
comment Functional Programming: right ideas about concurrency and state?
So... you're asking how shared-state concurrency being easy helps manage state in a single-threaded application? On the other hand, your example clearly lends itself to concurrency conceptually (a thread for each AI-controlled entity) whether or not it's implemented that way. I'm confused what you're asking here.
Apr
18
comment Recursion or while loops
Feh. If your environment doesn't optimize tail calls you should find a better environment, and if your developers are unfamiliar with recursion you should find better developers. Have some standards, people!
Apr
18
comment Recursion or while loops
What, no mention of while loops with immutable data? After all, those are indeed very, very low in expressive power. About as low as you can get, in fact. ;]
Apr
16
comment Is Haskell/Clojure actually unsuited for dynamic systems such as particle simulation?
@Dokkat: I'm skeptical that the commenter there knows much of anything about functional programming, to be very honest. I'd take it with a large grain of salt.
Apr
16
answered Is Haskell/Clojure actually unsuited for dynamic systems such as particle simulation?
Apr
16
awarded  Organizer
Apr
16
revised Is Haskell/Clojure actually unsuited for dynamic systems such as particle simulation?
edited tags
Feb
18
awarded  Caucus
Feb
4
answered What's a good math textbook to have on my desk while studying Haskell?
Feb
1
comment What is the advantage of currying?
It's worth noting that, because of this, the argument order used for functions in Haskell is often based on how likely partial application is, which in turn makes the benefits described above apply (ha, ha) in more situations. Currying by default thus ends up being even more beneficial than is apparent from specific examples like the ones here.
Feb
1
comment What is the advantage of currying?
Currying alone is essentially useless, but having all functions curried by default makes a lot of other features much nicer to use. It's hard to appreciate this until you've actually used a functional language for a while.
Jan
28
comment Why (or why not) are existential types considered bad practice in functional programming?
@PetrPudlák: Keep in mind that the antipattern there is not existential types in general, but a particular use of them when something simpler and easier (and better supported in Haskell) would do the same job.
Dec
21
comment Does auto make C++ code harder to understand?
If using more type inference makes it hard for a programmer to read the code, either the code or the programmer needs serious improvement.
Nov
30
comment What's special about currying or partial application?
It's correct in spirit, certainly. Splitting hairs over the definitions of "general form", "possible", and having a "conception of partial application" won't change the simple fact that the charming f <$> x <*> y idiomatic style works easily because currying and partial application work easily. In other words, what's pleasant is more important than what's possible here.