Miễn là chúng ta có PartialFunction[X,R], thật dễ dàng chuyển đổi nó thành hàm trả về Option[R], ví dụ: def pfToOptf[X, R](f: PartialFunction[X,R])(x: X) =
if (f.isDefinedAt(x)) Some(f(x))
e
Option là mặc nhiên chuyển đổi thành một Iterable - nhưng tại sao nó không chỉ là chỉ thực hiện Iterable trực tiếp: def iterator = new Iterator[A] {
var end = !isDefined
def next() = {