2 ms·
Yes. But while this is single dispatch. The real clue is that you can have multiple dispatch. So you might have. define generic inspect-vehicle (v :: <vehicle
by nickik 8y ago
Yes. But while this is single dispatch. The real clue is that you can have multiple dispatch.
So you might have.
define generic inspect-vehicle (v :: <vehicle>, i :: <inspector>) => ();
define method inspect-vehicle (v :: <vehicle>, i :: <inspector>) => ()
look-for-rust(v);
end;
define method inspect-vehicle (car :: <car>, i :: <inspector>) => ()
next-method(); // perform vehicle inspection
check-seat-belts(car);
end;
define method inspect-vehicle (truck :: <truck>, i :: <inspector>) => ()
next-method(); // perform vehicle inspection
check-cargo-attachments(truck);
end;
This is Dylan code, but its the same concept, easier to read compared to CL. See: https://opendylan.org/documentation/intro-dylan/multiple-dispatch.html https://opendylan.org/documentation/intro-dylan/multiple-dis...
Once you start thinking about dispatch in a broader sense the advantage is clear.