Pequeno arquivo de log

Enquanto tentava fazer com que o bochs imprimisse em um arquivo o valor escrito para a porta paralela, habilitei todas as opções de debug. Em menos de cinco minutos praticamente travou o HD e apareceu o arquivo na imagem abaixo:

Arquivo de log

Compreensão de Listas (List Comprehension)

Hoje pela manhã apresentei o trabalho sobre Erlang. Foi algo bem curto, apenas apresentando superficialmente a linguagem e sua história. Como exemplo, usamos o código abaixo, extraído da entrada na Wikipedia:

%% quicksort:qsort(List)
%% Sort a list of items
-module(quicksort).
-export([qsort/1]).

qsort([]) -> [];
qsort([Pivot|Rest]) ->
    qsort([ X || X <- Rest, X < Pivot]) ++ [Pivot] ++ qsort([ Y || Y <- Rest, Y >= Pivot]).

Logo após passar para o próximo slide o professor interrompe e diz: “Pessoal, esse assunto será questão da prova 1”. Na hora o pessoal acordou (hehehe) e pediu para explicar novamente. =)

O que deve cair especificamente é o que chamamos de “List Comprehension” (Compreensão de listas), uma técnica utilizada para o processamento de listas de maneira análoga às regras de construção de conjunto, do tipo que [ X || X <- Rest, X < Pivot] significa algo como “Pegue os elementos X tal que X pertença a Rest e X é menor que Pivot”. O que segue ao “||” são as condições para que um elemento pertença à lista.

Troca (parcial) de linguagem

Após algumas experiências inciais com Ruby, eu tive que parar um pouco, por causa de um projeto da faculdade, e aprender pelo menos algunas noções iniciais sobre Erlang, uma linguagem inventada pela Ericsson para usar em seus sistemas de telefonia.

Pelo menos a princípio, Erlang parece ser bem interessante, completamente diferente de qualquer linguagem na qual eu tenha feito alguma coisa “não-trivial” (Java, C, etc…). Outro ponto positivo é que ela foi aberta pela Ericsson em 1998 e continuou tendo suporte da empresa, além de um bom pacote de bibliotecas.