Jogger.pl


Oryginalny komentarz

Wpis bardzo fajny, jak zwykle :). Przydałby się jednak jeszcze jakiś przykładowy program, taki z życia wzięty :).

3. Rozróżnienie między przedziałem ‘..’ i ‘...’ jest powalającym pomysłem. Jedynym gorszym mogłoby chyba być dodanie jeszcze przedziału konstruowanego za pomocą ‘....’. ;-)

Hm, co w tym złego? Czepiający się Pythonista?:P

Co do przedziałów (Range) dodam, że można bardzo łatwo tworzyć klasy, które się tak zachowują:

--
class XLetters
    include Comparable
    attr_accessor :length

    def initialize(n)
        @length = n
    end

    def succ
        XLetters.new(length + 1)
    end

    def <=>(other)
        self.length <=> other.length
    end

    def inspect
        'x' * length
    end
end

range = XLetters.new(3)..XLetters.new(10)
p range.to_a
p range.include?(XLetters.new(5))
#i inne (min, max etc)
--

ps. czemu nie ma podglądu komentarzy?:)

Zmodyfikowany komentarz

Wpis bardzo fajny, jak zwykle :). Przydałby się jednak jeszcze jakiś przykładowy program, taki z życia wzięty :).

3. Rozróżnienie między przedziałem ‘..’ i ‘...’ jest powalającym pomysłem. Jedynym gorszym mogłoby chyba być dodanie jeszcze przedziału konstruowanego za pomocą ‘....’. ;-)

Hm, co w tym złego? Czepiający się Pythonista?:P

Co do przedziałów (Range) dodam, że można bardzo łatwo tworzyć klasy, które się tak zachowują:


class XLetters
    include Comparable
    attr_accessor :length

    def initialize(n)
        @length = n
    end

    def succ
        XLetters.new(length + 1)
    end

    def <=>(other)
        self.length <=> other.length
    end

    def inspect
        'x' * length
    end
end

range = XLetters.new(3)..XLetters.new(10)
p range.to_a
p range.include?(XLetters.new(5))
#i inne (min, max etc)

ps. czemu nie ma podglądu komentarzy?:)