Writing as an unreconstructed imperative &amp; OO programmer...  Have messed about with Erlang and also Haskell lately. I like Erlang, not sure yet about Haskell. Functional seems more like math than programming, hope that makes sense. Functional programming seems very powerful.  Reading docs on the interwibble wrt functional programming I come across the word 'currying' constantly. I seem to be finding only docs that are somewhat over my head - much terminology that is not defined.  What is currying?  I have looked for similar already posted questions but did not find anything, so feel free to point me to established thread.
24212
I've seen references to curried functions in several articles and blogs but I can't find a good explanation (or at least one that makes sense!)
14258
I wonder if there is any difference between mapping and a function. Somebody told me that the only difference is that mapping can be from any set to any set, but function must be from $\mathbb R$ to $\mathbb R$. But I am not ok with this answer. I need a simple way to explain the differences between mapping and function to a lay man together with some illustration (if possible).  Thanks for any help.
84865
What's the difference between eq, eql, equal and equalp, in Common Lisp?  I understand that some of them check types, some of them check across types an all that, but which is which?  When is one better to use than the others?
50085
I've been reading about mathematical logic and computability theory, but I'm somewhat confused on one note: what exactly is a language? What does it mean when I am told "let $\langle 0, +, \leq \rangle$ be a language"? I looked this up everywhere I could, but haven't found a satisfactory/clear answer.
56863
In   asserted:     I would advice you not to use prototypes. They have their uses, but not for most cases and definitely not in this one.   Why might this be true (or otherwise)? I almost always supply prototypes for my Perl functions, and I've never before seen anyone else say anything bad about using them.
87657
I'm studying for my Platform Dev I exam, and I've been reading about interfaces. I understand how they work in abstraction, but what I don't understand is why you would use them. The documentation says they "provide a layer of abstraction to your code," but that doesn't really tell me anything. If you have to define all of the methods in your implementing class anyway, how does an interface make your code any cleaner?  Thanks for your help!
42622
We all know what virtual functions are in C++, but how are they implemented at a deep level?  Can the vtable be modified or even directly accessed at runtime?  Does the vtable exist for all classes, or only those that have at least one virtual function?   Do abstract classes simply have a NULL for the function pointer of at least one entry?  Does having a single virtual function slow down the whole class? Or only the call to the function that is virtual?  And does the speed get affected if the virtual function is actually overwritten or not, or does this have no effect so long as it is virtual.
85756
Could someone please demystify interfaces for me or point me to some good examples? I keep seeing interfaces popup here and there, but I haven't ever really been exposed to good explanations of interfaces or when to use them.  I am talking about interfaces in a context of interfaces vs. abstract classes.
99038
Which libraries for Java are there that have a fast implementation for floating point or fixed point operations with a precision of several thousands of digits? How performant are they?  A requirement for me is that it implements a multiplication algorithm that is better than the naive multiplication algorithm that takes 4 times as much time for a 2 times larger number of digits (compare ).
74581
I'm just curious. Is Stack Overflow built with  (or , , etc.)?  Can you guys say something more about code infrastructure?
66929
I have to prove that this set of logical operators is not functional complete -  $$ \{\lnot,\leftrightarrow\} $$  i've tried implement this set by $ \{\rightarrow,\lor\} $ which is not functional complete too, but didn't success.. thanks !
19841
I've been programming in C++ for a few years, and I've used STL quite a bit and have created my own template classes a few times to see how it's done.  Now I'm trying to integrate templates deeper into my OO design, and a nagging thought keeps coming back to me: They're just a macros, really... You could implement (rather UGLY) auto_ptrs using #defines, if you really wanted to.  This way of thinking about templates helps me understand how my code will actually work, but I feel that I must be missing the point somehow. Macros are meant evil incarnate, yet "template metaprogramming" is all the rage.  So, what ARE the real distinctions? and how can templates avoid the dangers that #define leads you into, like   Inscrutable compiler errors in places where you don't expect them? Code bloat?  Difficulty in tracing code? Setting Debugger Breakpoints?
95160
Is there any game engine using a functional programming language similar to Scheme, Common Lisp, Clojure or JavaScript?  I've tried Unity3D but their "JavaScript" is not actually JavaScript, is strongly typed and is not functional.
84974
int fn();  void whatever() {     (void) fn(); }   Is there any reason for casting an unused return value to void, or am I right in thinking it's a complete waste of time?  Follow up:   Well that seems pretty comprehensive.  I suppose it's better than commenting an unused return value since self documenting code is better than comments. Personally, I'll turn these warnings off since it's unnecessary noise.    I'll eat my words if a bug escapes because of it...
100728
I've picked up the  for leisure. I'm comfortable with strongly typed languages and familiar with dependently typed languages and I enjoy topology, so I thought that the HoTT book was a good opportunity to learn some of the math underlying the type systems (and, by HoTT's reputation, a new way of looking at many other things I know.)  I'd dabbled a bit in formal type theory previous to HoTT. I've long thought of (independent) types like this:  Unit data types are types with only one value, isomorphic to:  data Unity = Unity   You can sum types, creating a type inhabited by as many values as A + B  data Sum a b = Left a | Right b   more commonly known as Either a b in programming circles.  Then there are product types, which house as many types as A × B  data Product a b = Both a b   more commonly known as (a, b).  Finally there are exponential types inhabited by as many values as there are mappings A → B (which is $B^A$). These are more commonly known as functions, and defining them is my day job. The little algebraic type theory I know is founded in those assumptions. (I'm curious what's beyond exponential types in this progression, but that's besides the point.)  The HoTT book starts out by defining the exponential type $\rightarrow$, the dependent function type $\Pi$, the product type $\times$, and the dependent pair type $\Sigma$. The definitions all make sense, but I find the naming confusing. Function types seem pretty exponential to me: why are dependent function types (a generalization of $\rightarrow$) denoted $\Pi$ ('product')?  This doesn't seem like just a silly mistake: the product type $\times$ is generalized to a dependent product type $\Sigma$ ('summation').  Both types are "demoted" when they're generalized (exponential to product, product to sum). There's obviously some reasoning behind this naming, but it's going right over my head.  Why does Homotopy Type Theory use this naming scheme? What's the isomorphism that I'm missing?
51439
How do you do "inline functions" in C#? I don't think I understand the concept. Are they like anonymous methods? Like lambda functions?  Note: The answers almost entirely deal with the ability to , i.e. "a manual or compiler optimization that replaces a function call site with the body of the callee." If you are interested in , see  or .
66371
If I know that the set of operators {∨, &amp; , ¬} is functionally complete, how do I go about proving/disproving the functional completeness of the following set of operators?  a) $\{\vee,\neg\}$  b) $\{\to,\neg\}$  c) $\{\to\}$  I have looked at the answer here for (b) :