2015-04-27 26 views
12

Dato azioni Nim un sacco di funzioni con Python, non sarei sorpreso se implementa Python's list comprehension troppo:Nim equivalente di lista Python

string = "Hello 12345 World" 
numbers = [x for x in string if x.isdigit()] 
# ['1', '2', '3', '4', '5'] 

È questo in realtà possibile in Nim? In caso contrario, potrebbe essere implementato con modelli/macro?

risposta

13

di lista è già implementato in Nim ma attualmente ancora nel pacchetto future (ovvero, devi import future). Si è implementato come una macro chiamata lc e permette di scrivere comprensioni lista come questa:

lc[x | (x <- 1..10, x mod 2 == 0), int] 

lc[(x,y,z) | (x <- 1..n, y <- x..n, z <- y..n, x*x + y*y == z*z), tuple[a,b,c: int]] 

Si noti che la macro richiede di specificare il tipo di elementi.

+0

@Downvoter: Sorpreso di avere downvotes qui. È solo perché l'altra risposta è stata aggiornata o c'è qualcosa di sbagliato nella mia risposta? – bluenote10

+0

La tua risposta è giusta, e dal momento che sei stato il primo a commentare il modulo futuro, contrassegnerò il tuo come corretto. – Arrrrrrr