Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Because most of Mathematica is written in Mathematica, you can actually introspect large parts of the codebase (by using DownValues). Try e.g.:

  DownValues[GraphPlot]
Sometimes various symbols are 'ReadProtected', which prevents you from seeing their internal definition. But guess what? You can just Unprotect them and remove that attribute. And even introduce new definitions to monkey-patch the language!

Only a smallish subset of the language is written in C (for speed).

Edit: It's also kinda fun to use

  Names["*`*"] 
to see all the defined symbols in a fresh kernel -- there's a lot of hidden stuff there. Try

  Names["Internal`*"]
  Names["Developer`*"]
to see some stuff the developers kept to themselves :)


Interesting! Most things I tried cannot be introspected though (e.g. DSolve, LaplaceTransform) and it's of course a far cry from a commented source file or notebook. Still, more than I thought was possible with Mathematica.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: