28 KiB
28 KiB
In [ ]:
function hyp(x,y)
sqrt(x^2+y^2)
endIn [ ]:
hyp(x, y) = sqrt(x^2 + y^2)In [ ]:
(x, y) -> sqrt(x^2 + y^2)In [ ]:
function fn(x)
println(x)
return
end
a = fn(2)In [ ]:
aIn [ ]:
@show a typeof(a);In [ ]:
map( (x,y) -> sqrt(x^2 + y^2), [3, 5, 8], [4, 12, 15])In [ ]:
map( x->3x^3, 1:8 )In [ ]:
filter(x -> ( x%3 == 0 && x%5 == 0), 1:100 )In [ ]:
V = [1, 2, 3]
W = fill!(V, 17)
# '===' ist Test auf Identität
@show V W V===W; # V und W benennen dasselbe Objekt In [ ]:
function fill_first!(V, x)
V[1] = x
return V
end
U = fill_first!(V, 42)
@show V U V===U;In [ ]:
fa(x, y=42; a) = println("x=$x, y=$y, a=$a")
fa(6, a=4, 7)
fa(6, 7; a=4)
fa(a=-2, 6)In [ ]:
fkw(; x=10, y) = println("x=$x, y=$y")
fkw(y=2)In [ ]:
f2 = sqrt
f2(2)In [ ]:
# sehr naive numerische Integration
function Riemann_integrate(f, a, b; NInter=1000)
delta = (b-a)/NInter
s = 0
for i in 0:NInter-1
s += delta * f(a + delta/2 + i * delta)
end
return s
end
Riemann_integrate(sin, 0, π)In [ ]:
function generate_add_func(x)
function addx(y)
return x+y
end
return addx
endIn [ ]:
h = generate_add_func(4)In [ ]:
h(1)In [ ]:
h(2), h(10)In [ ]:
generate_add_func(x) = y -> x + yIn [ ]:
(sqrt ∘ + )(9, 16)In [ ]:
f = cos ∘ sin ∘ (x->2x)
f(.2)In [ ]:
@show map(uppercase ∘ first, ["ein", "paar", "grüne", "Blätter"]);In [ ]:
25 |> sqrtIn [ ]:
1:10 |> sum |> sqrtIn [ ]:
["a", "list", "of", "strings"] .|> [length, uppercase, reverse, titlecase]In [ ]:
# das ist dasselbe wie Riemann_integrate(x->x^2, 0, 2)
Riemann_integrate(0, 2) do x x^2 endIn [ ]:
r = Riemann_integrate(0, π) do x
z1 = sin(x)
z2 = log(1+x)
if x > 1
return z1^2
else
return 1/z2^2
end
endIn [ ]:
# struct speichert die Koeffiziente eines Polynoms 2. Grades
struct Poly2Grad
a0::Float64
a1::Float64
a2::Float64
end
p1 = Poly2Grad(2,5,1)
p2 = Poly2Grad(3,1,-0.4)In [ ]:
function (p::Poly2Grad)(x)
p.a2 * x^2 + p.a1 * x + p.a0
endIn [ ]:
@show p2(5) p1(-0.7) p1;In [ ]:
+(3, 7)In [ ]:
f = +In [ ]:
f(3, 7)In [ ]:
-2^3+500/2/10==8 && 13 > 7 + 1 || 9 < 2In [ ]:
using TreeView
walk_tree(Meta.parse("-2^3+500/2/10==8 && 13 > 7 + 1 || 9 < 2"))In [ ]:
200/5/2 # wird von links ausgewertet als (200/5)/2 In [ ]:
200/2*5 # wird von links ausgewertet als (200/2)*5In [ ]:
x = 1
y = 10
# wird von rechts ausgewertet: x += (y += (z = (a = 20)))
x += y += z = a = 20
@show x y z a;In [ ]:
for i in (:/, :+=, :(=), :^)
a = Base.operator_associativity(i)
println("Operation $i is $(a)-assoziative")
endIn [ ]:
2^3^2 # rechtsassoziativ, = 2^(3^2) In [ ]:
for i in (:+, :-, :*, :/, :^, :(=))
p = Base.operator_precedence(i)
println("Vorrang von $i = $p")
endIn [ ]:
# Zuweisung hat kleinsten Vorrang, daher Auswertung als x = (3 < 4)
x = 3 < 4
xIn [ ]:
(y = 3) < 4 # Klammern schlagen natürlich jeden Vorrang
yIn [ ]:
-2^3+500/2/10==8 && 13 > 7 + 1 || 9 < 2In [ ]:
for i ∈ (:^, :+, :/, :(==), :&&, :>, :|| )
print(i, " ")
println(Base.operator_precedence(i))
endIn [ ]:
((-(2^3)+((500/2)/10)==8) && (13 > (7 + 1))) || (9 < 2)In [ ]:
1/2*π, 1/2πIn [ ]:
-2^2 # -(2^2)In [ ]:
x = 5
2x^2 # 2(x^2)In [ ]:
2^-2 # 2^(-2)In [ ]:
2^2x # 2^(2x)In [ ]:
sin(x)^2 === (sin(x))^2 # nicht sin(x^2)