type-coercion

W Ruby, jak działa funkcja coerce ()?

Mówi się, że gdy mamy klasę Point i wiemy, jak wykonać point * 3, Jak Następuje: class Point def initialize(x,y) @x, @ ... zdefiniujemy Punkt minus Fixnum jako: point = Point.new(100,100) point - 20 #=> (80,80) 20 - point #=> (-80,-80)

Jak spłaszczyć listę do listy bez przymusu?

Próbuję osiągnąć funkcjonalność podobną do unlist, z tym wyjątkiem, że typy nie są zmuszane do wektora, ale zamiast tego zwra ... szego, ale nie-listy nie powinny być spłaszczone, tzn. flatten(list(1:3, list(4, 5))) powinny zwracać list(c(1, 2, 3), 4, 5).