Em smalltalk isso já funciona :D
| filtered |
filtered := Behavior allClassNames select: [:cada |
cada beginsWithIgnoreCase: 'P'
].
filtered sort do: [:cada |
cada out.
]
E na sua linguagem preferida, com quantas linhas você reproduz esta funcionalidade?
Smalltalk realmente é uma linguagem poderosa, na minha opnião o problema é a sua arquitetura que deixa a desejar, mas... fica ai a pergunta, porque uma linguagem tão poderosa não vingou?