Closed cstrap closed 7 years ago
Ho scritto qualcosa dei generatori nella sezione yield
.
Quel WAT è una comprehension che diventa un generatore quando si cambiano le parentesi quadrate in tonde. E' corretto?
Esatto, questo è un modo per creare i generatori via comprehension. Va ricordato che la comprehension può essere usata per liste, dict e set.
A proposito di set, in Ruby sono nella standard library e non dentro il core del linguaggio. Faccio una nota con [master 3a99bc2]
http://ruby-doc.org/stdlib-2.4.0/libdoc/set/rdoc/Set.html
2.3.0 :001 > s = Set.new
NameError: uninitialized constant Set
from (irb):1
from /home/me/.rvm/rubies/ruby-2.3.0/bin/irb:11:in `<main>'
2.3.0 :002 > require 'set'
=> true
2.3.0 :003 > s = Set.new
=> #<Set: {}>
2.3.0 :004 > s << 1
=> #<Set: {1}>
2.3.0 :005 > s << 2
=> #<Set: {1, 2}>
2.3.0 :006 > s << 3
=> #<Set: {1, 2, 3}>
2.3.0 :007 > s << 4
=> #<Set: {1, 2, 3, 4}>
2.3.0 :008 > s.map {|n| n * n}
=> [1, 4, 9, 16]
2.3.0 :009 > s.map {|n| n * n}.class
=> Array
2.3.0 :010 > s.each {|n| puts n * n}
1
4
9
16
=> #<Set: {1, 2, 3, 4}>
Giusto per infierire sull'uso delle parentesi in python :-) Potrebbe essere inserita nella sezione WATs?
Anche i generators meriterebbero uno spazio, insieme alle corutine e async. Forse è il caso di limitare la comparazione al web, anche se le peculiarità dei linguaggi la trovo decisamente più interessante.