542 reputation
27
bio website
location Cologne, Germany
age
visits member for 3 years
seen 13 hours ago

Functional programming enthusiast, audio engineer & musician. Whilst not busy with any of that, I study physics at Universität zu Köln / Bonn-Cologne Graduate School.


1d
answered Why do some functional programming languages use a space for function application?
Jul
7
comment How does the “Fourth Dimension” work with arrays?
@Scott: I agree the notion of "dimension of an array" is unfortunate because it means something unrelated to the dimensionality of a space whose vectors you might represent by the arrays. (However I also think it's not such a good idea to represent vectors by plain, unabstracted arrays in the first place.) A better name might be the rank of an array, in analogy to tensors.
Jul
4
comment How does the “Fourth Dimension” work with arrays?
"we assume each spatial dimension to be infinite" infinite isn't the biggest deal here actually, continuous is the "real" problem (i.e. over-countably infinite, and we need a homeomorphic mapping so it's physically meaningful).
Jul
4
awarded  Nice Answer
Jul
3
awarded  Yearling
Jul
3
answered How does the “Fourth Dimension” work with arrays?
May
12
comment Does C++ compiler remove/optimize useless parentheses?
I wonder why a) you consider the parenthesised expression more readable (to me it just looks ugly, misleading (why do they emphasize this particular order? Shouldn't it be assiciative here?) and clunky) b) why you'd think without parentheses it might perform better (clearly parsing parens is easier for a machine than having to reason about operator fixities. As Marc van Leuwen says though, this totally has no influence on runtime).
May
2
comment If null is bad, why do modern languages implement it?
@RualStorge: no matter what you call it you'll need to handle it – to some degree, sure. But if you make it explicit it becomes way more obvious how to correctly handle it. And indeed easier if the language is powerful enough, since option types form a monad, so it can basically be as simple as just changing the signatures to mention there's a lack-of-value possibility; the handling itself is taken care for by the compiler (with the help of some mighty mathematical proofs).
Apr
4
comment Does functional programming add complexity in code?
@user949300: but apart from ca and cb they're all introduced no more than two lines above from where they're used. The problems with short names arise mainly when there's potential for confusion, and tight scoping prevents that. And because these short names contribute to conciseness, you can more often keep the scopes so small. (Sometimes it's even better to avoid introducing local variables completely by using point-free style.)
Apr
4
comment Does functional programming add complexity in code?
@user949300: short variable names are preferred locally, that's the same in the functional and imperative worlds (you wouldn't write for(i=0; i<7; ++i) { trivialOperation(i); } with some awkward trivialOperationCount variable, would you?) Now, functional programming languages with pattern matching will sometimes introduce some more variables where you'd just write out accessor method calls in OO. The result is generally more concise; perhaps a little less self-explanatory, but looking up the data declaration normally makes it clear quickly. Static typing helps a lot, it's not like in APL.
Feb
25
comment How to write camel case for words like “phonenumber”, “motorcycle”, “wavelength”, etc
@corsiKa: actually that does kind of make sense, because in a hash map the hashing is crucial to characterise the behaviour (there is no ordering), while using a tree vs. e.g. an ordered array is an implementation detail that only affects the performance of certain actions. So you emphasise ʜᴀꜱʜmap vs. treeMᴀᴘ. (Though again one might argue that ordering shouldn't be a "default" characteristic of maps, but then the correct nomenclature would be hashMap vs. treeOrdmap and arrayOrdmap.)
Feb
19
comment How do purely functional programming languages deal with fast changing data?
@CodesInChaos: however, such immutable structures typically have also much more overhead than simple arrays. As a result, there is very much a practical difference. Which is why any purely functional language that's aiming at general-purpose programming should have a way to use mutable structures, in some safe way compatible with the pure semantics. The ST monad in Haskell does this excellently.
Feb
19
comment Is there any difference learning OOP on different programming languages?
@JimmyHoffa: come on, that can't be true, can it! We all know Java was the first OO language ever. "Sun loudly heralds Java's novelty"... — As for the question... why are you determined to learn OO? That'll be forced upon you soon enough. Python is an excellent starting point, to get insights to the benefits of multiple programming paradigms.
Jan
17
awarded  Citizen Patrol
Oct
11
comment How would I implement a “self-destruct” feature into the free trial version of my software?
Of course, there's also the "belief in human goodness" approach: full gratis trial, nothing stripped down or bricked, just popping up a message about this software not being free. It's used for instance by what I consider to be the best digital audio workstation out there. Just sayin...
Jan
16
comment Is it a good idea to provide different function signatures that do the same thing?
Kind of a duplicate of my question here (I now agree that it's a bad idea).
Jan
16
comment I hate one of our coding standards and it drives me insane, how to process it?
While I personally agree with your preference, this is really just a trivial detail that's not worth discussing at all. At least it is trivial assuming you're writing in a "normal" procedural/OO style; things look rather different if you make heavy use of very small local functions, which usually only makes sense in the form of lambdas. If supported at all, I reckon your standard doesn't forbid "inlining" the opening brace for those, does it?
Dec
30
comment Why aren't user-defined operators more common?
@dimatura: I don't know much about R, but it's custom operators still don't seem very flexible (e.g. no proper way do define fixity, scope, overloading etc.), which explains why they aren't used much. That's different in other languages, certainly in Haskell which uses custom infix operators a great lot. Another example of a procedural language with reasonably custom-infix support is Nimrod, and of course Perl also allows them.
Sep
19
comment How can I really master a programming language?
It's probably true that no one can really master a language like C++, but for somewhat minimalistic ones like Scheme it should be quite possible — as @SK-logic says, it's really the programming, in whatever language, that cannot be mastered, because the field of applications is infinite.
Sep
6
comment Why is the concept of lazy evaluation useful?
You need to stop thinking about "executing code" and start thinking of "calculating results", for that's what you really want in most interesting problems. Of course programs usually also need to interact with the environment in some way, but that can often be reduced to a small part of the code. For the rest, you can work purely functional, and there lazyness can make reasoning a lot simpler.