Thanks for explaining this to me Matt, I still think builtins should be
wrapped into julia functions, instead of diferentiating them more, could we
switch to arrays instead of keep using svecs once julia defines the array
type? That I'll try to figure out today.
El martes, 5 de enero de 2016, 9:09:08 (UTC-6), Matt Bauman escribió:
>
> On Tuesday, January 5, 2016 at 3:23:14 AM UTC-5, Ismael Venegas Castelló
> wrote:
>
>> Why force `methods` to work with anything?
>>
>
> Because you can call anything:
>
> julia> call(x::Char) = x+1
> call (generic function with 1038 methods)
>
> julia> 'c'()
> 'd'
>
> julia> methods('c')
> 1-element Array{Any,1}:
> call(x::Char) at none:1
>
> There's been a much stronger push for documenting the external interfaces,
> but there's more and more internal developer documentation these days, too (
> http://docs.julialang.org/en/latest/devdocs/julia/). It's getting better.
>
> I believe flisp.boot is a generated file.
>
> Builtins are simply functions (and types) that are written in C; necessary
> for bootstrapping. You can find the mapping between their Julia names and
> the C definitions here:
> https://github.com/JuliaLang/julia/blob/baf174f5c252a438006c6f23ed7097fbab004025/src/builtins.c#L1202-L1284.
>
> Search for their C names to find their definitions. They accept any
> number of Any arguments within their function definitions, but those that
> require a certain number of arguments have error checking within the C
> function.
>
> Also note that anonymous functions have the type `Function`, too. The
> introspection utility you want is `isgeneric`. I imagine lots of this will
> change with the jb/functions branch, where all functions are generic.
>