Any book on OOP must explain inheritance, simply because it’s an important part of OOP in many languages. And since it’s so hard to explain and understand a large part of the book will be just about inheritance. This may lead to the false impression that OOP is just about inheritance.
I often notice that many students of programming do not understand the actual meaning of regular expressions. And I have seen online tutorials and even books that do not explain properly what regular expressions are. Continue reading “Regular Expressions”
Java is Pass-By-Value. I list some alternatives.
This has been answered a million times (I get a million results on google). But my answer is the most bestest!Continue reading “Why is String immutable?”
String.length() gives the length of the String, right? Or does it?
Just a prototype so far:
The generic types of the arguments are always A, B, C, etc. The result is of generic type R.
It’s my goal to have three forms:
- Method/Lambda Form: Takes n arguments
- Curried Form: Methods are chained
A -> B -> C -> ... -> R
- Uncurried Form: Takes a tuple
(A,B,C,...) -> R
The idea is to add all the basic functions of Haskell to a project that then uses javatuples.org to have a way of using tuples for functional programming in Java 8.
- curry / uncurry
- zip / unzip
- composition (“.”-operator in Haskell)
- pipes (“|>” in F#)
- partial application
fn.arity()returns the arity of the function.
- Convert Suppliers and Consumers to Functions.
There’s still a lot to do…
List of TODOs:
- Implementations of
Quad ... Decade
- Unit-Tests (instead of FunctionalDemo.java)
Uncurriedfor such forms of the methods
Contact me on github if you are interested in this project.
Arrays of generic types are often hard to create and handle. I’ll show you how to create an array of a class with a generic parameter.
Why a constructor is not a method.
No, it’s not. In reflection both extend
Constructor does not extend
Method. It is a common misconception that constructors are methods and often asked about at job interviews.
Continue reading “Why a Consumer is not a Function.”
java.util.function.Consumer does not extend
java.util.function.Function. But what if you want a set of both types? Why isn’t there a ConsumerFunction?
A ConsumerFunction is not defined in
java.util.function. You can easily do it yourself. But you will see that it’s not that simple.
void is a keyword in Java. There is a class
Void and (by reflection) you can even get an instance of
Void. But you have to use a return statement to get a
They do! And so do most online tutorials. Buy a good book instead!
Continue reading “Blogs about Programming suck!”