2016-08-15 6 views
7

Pythonには、特定の項目を理解度に含めるかどうかの条件を指定するオプションがあります。Juliaの条件付き理解

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

条件付きで機能を使用することが可能であるが、私はまだ理解の外にそれらをINGのfilter!以外、完全に値を排除する方法を発見していません。

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] 

これはジュリアで可能ですか?

答えて

14

最新のジュリアが可能です。

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

あなたは事前0.5を使用している場合はそれ以外の場合は、はい、あなたがで立ち往生している:2Cubed 0.4.6 @

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

は '安定' リリースです。しかし、「夜間」のリリースはすでにWebサイトからダウンロードできます。 (それは現在0.6 +!) –

+2

確かに。 IMO 0.5は現時点で優れた安定性/機能バランスを持っていますので、もしあなたが@ 2Cubedなら、私はそれに行きます。 –

+1

@AlexanderMorleyすでに0.5のリリース候補があるように見えます。 – 2Cubed