Thanks Yu and Quinn.

Now lets go one step further. Lets say I don't want to use any default 
parse function. I will make my own.

type Buffer{T} x::T end

function store!(b::Buffer{String}, c::Char) b.x = "$(b.x)$x" end
function store!(b::Buffer{Int}, c::Char, d::Int) b.x += (c - '0')*10^d end #d 
is number of digits


Usage
get_rid_of_leading_spaces()
while !isspace((x = read_next_char()) store(buffer, x) end

But I can see potential problems:

   1. *"$(b.x)$x"* is probably not much effective, maybe I should use 
   arrays of chars with fixed size, but how do I convert it to string? 
   string(char_array...) doesn't work with '\0' and I don't want to create new 
   array by calling char_array[1:size].
   2. is *b.x += (c - '0')*10^d *really the fastest implementation possible?


As a side note, is there anything like show_method_body(function)? I often 
want to see how is function base.xy implemented, but I have to manually 
search all the files which is quite exhausting.

  

Reply via email to