No problem – glad we could clear up the confusion. Generic functions take a little getting used to, but once you do, they're extremely powerful and quite intuitive.
On Tue, Apr 8, 2014 at 4:30 PM, Mason McGill <mason.b.mcg...@gmail.com>wrote: > > > On Tuesday, April 8, 2014 1:17:06 PM UTC-7, Isaiah wrote: >> >> This is what I was looking for; so if I understand you correctly, you >>> satisfy protocols by extending/monkey-patching Base. This seems >>> reasonable, but what do you do when you want to define your own protocol >>> (e.g. Classifier), and Base doesn't have the functions you'd like to >>> require (e.g. fit, predict)? >>> >> >> As Jameson said (I think): there isn't anything particularly special >> about Base, except that it's installed/available by default. Users will >> need to import your library to use your stuff, so if they want to extend a >> (library) built-in, they will do `import MasonLib: fit, predict` rather >> than the imports from Base. >> >> Oh I see. Sorry if I was thick about this; the languages I'm most used > to (C++, D, Python) solve this problem pretty differently. Julia's > approach is at least as reasonable, IMO. > > Thanks! > -Mason >