Okay. I think I did not correctly understand the const declaration used in
the manual.
At the moment, and for my purposes, the map() function is the shorter
alternative.
On Wednesday, May 7, 2014 4:23:41 PM UTC+2, Kevin Squire wrote:
>
> If you declare `xs` as constant, the compiler knows that its type won't
> change, and can properly do inference.
>
> julia> function runge(x::Number)
> 1 / (1 + 5 * x^2)
> end
> runge (generic function with 1 method)
>
> julia> const xs = linspace(-1.0, 1.0);
>
> julia> [runge(x) for x = xs]
> 100-element Array{Float64,1}:
> 0.166667
> 0.172413
> ⋮
> 0.17844
> 0.172413
> 0.166667
>
>
> It also works without const in a function, because again, the compiler can
> determine that the type of xs won't change:
>
> julia> function testfunc()
> xs = linspace(-1.0, 1.0)
> [runge(x) for x = xs]
> end
> testfunc (generic function with 1 method)
>
> julia> testfunc()
> 100-element Array{Float64,1}:
> 0.166667
> 0.172413
> 0.17844
> ⋮
> 0.17844
> 0.172413
> 0.166667
>
> Cheers,
> Kevin
>
>
> On Wednesday, May 7, 2014 7:10:20 AM UTC-7, John Myles White wrote:
>>
>> Comprehensions work much better if you type them:
>>
>> ys = Float64[runge(x) for x in xs]
>>
>> — John
>>
>> On May 7, 2014, at 7:08 AM, Hans W Borchers <[email protected]> wrote:
>>
>> Thanks a lot.
>>
>> Before putting this question I searched for "map" through the Julia 0.3
>> Manual (PDF version)
>> and did not find a reference to a map() function. Now repeating this
>> procedure I see it. Sorry.
>>
>> I am still wondering what comprehension is good for if it dismisses all
>> the type information.
>>
>>
>> On Wednesday, May 7, 2014 1:58:40 PM UTC+2, Tobias Knopp wrote:
>>>
>>> try
>>>
>>> ys = map(runge,xs)
>>>
>>
>>
>>
>>