2016-08-15 14 views
7

W języku Python istnieje możliwość określenia warunku włączenia lub wyłączenia określonego elementu w zrozumieniu.Uwarunkowanie warunkowe w Julia

[x**2 for x in range(10) if x > 5] 
# [36, 49, 64, 81] 

Możliwe jest warunkowo użyć funkcji, ale jeszcze nie znalazłem sposób całkowicie wykluczyć wartości, inne niż filter! ing je poza zrozumieniem.

l = collect(0:9) 
filter!(x -> x > 5, l) 
l = [x^2 for x in l] # alternatively, map!(x -> x^2, l) 
# [36, 49, 64, 81] 

Czy to możliwe w Julia?

Odpowiedz

14

Jest to możliwe w najnowszej Julii.

julia> [x^2 for x in 0:9 if x > 5] 
4-element Array{Int64,1}: 
36 
49 
64 
81 

W przeciwnym razie, tak, jeśli używasz sprzed 0,5 utkniesz z:

[x^2 for x in filter((x) -> x > 5, 0:9)] 
+1

@ 2Cubed 0.4.6 jest 'stabilny' release. Ale "nocne" wersje są dostępne do pobrania już ze strony internetowej. (obecnie jest to 0,6+!) –

+2

Rzeczywiście. IMO 0.5 ma teraz dobrą równowagę stabilności i funkcji, więc chciałbym, aby to zrobiłem, gdybym był dla ciebie @ 2Cubed –

+1

@AlexanderMorley Wygląda na to, że są już kandydaci do wydania na 0.5 - wkrótce powinno być pełne wydanie! – 2Cubed