Re:Why I love Smalltalk
by more_original on Saturday July 30, 2011 @07:16AM
(#2825506)
> Smalltalk (presumably) has a form of logical branching in it somewhere. To finish the if, just pick one.
It uses dynamic binding.
In Java it would look like something this (but it's less useful without proper closures):
abstract class Bool {
void ifTrue(Runnable f, Runnable g);
}
class True extends Bool {
void ifTrue(Function f, Function g) {
f.run();
}
}
class False extends Bool {
void ifTrue(Function f, Function g) {
g.run();
}
}
Then, given a variable Bool b;
the if-then-else becomes b.ifTrue(new Runnable() {
public void run() {
System.out.println("It's true!");
}
}
, new Runnable() {
public void run() {
System.out.println("Not true!");
}
}
);
It's a bit more verbose, though...
Re:Why I love Smalltalk
by more_original on Saturday July 30, 2011 @10:21AM
(#2825821)
s/Function/Runnable/g
Smalltalk (presumably) has a form of logical branching in it somewhere. To finish the if, just pick one.
For a satisfying conclusion, you want to use one that doesn't already look like an if statement.