module Hamster::List
def take_while(&block)
def take_while(&block) return self unless block_given? Stream.new do next self if empty? next Sequence.new(head, tail.take_while(&block)) if yield(head) EmptyList end end
def take_while(&block) return self unless block_given? Stream.new do next self if empty? next Sequence.new(head, tail.take_while(&block)) if yield(head) EmptyList end end