2010-12-23

run :: BF -> IO ()

(continuando…)

A representação da máquina que usamos até aqui (um par com o índice onde está a cabeça, e a lista com as células) não é muito eficiente, porque é necessário percorrer a lista recursivamente para ler ou alterar o valor da célula actual.

run :: BF ->

(continuando…)

Falta o While!

Depois de ter funções que correm cada um dos diferentes comandos em BF, vamos agora juntar tudo até chegar à função run :: BF –> IO().

run ::

Na sequência da série de posts sobre a escrita de instâncias de Show e de Read em Haskell, este post trata da implementação de um interpretador de brainfuck.

2010-12-09

read :: Read a => String –> a

(continuando…)

readsPrec usando readsPrec usando readsPrec

Bem, tal como fizemos com o Show, vamos começar por Read BFCommand, fazer tudo menos o While, fazer o Read BF à custa do Read BFCommand, e depois acabar a parte do While no Read BFCommand à custa do Read BF. Espero que isto não vos dê a volta a cabeça…

read :: Read a => String ->

(continuando…)

Show foi fácil, então e Read?

Agora que já instanciamos Show, vamos instanciar Read. Esta é mais complicada que Show, mas não é inacessível.

Em primeiro lugar, vamos inspecionar a classe Read.


read :: Read a =>

(continuando…)

show usando show usando show

Mas como é que obtemos as representações textuais das instruções?

Muito simples! Usamos a classe Show!

read ::

Ouvi dizer que havia dificuldades em perceber como se definem instâncias da classe Read em Haskell, apesar das explicações dos professores. Esta é a minha tentativa de iluminar algumas mentes sobre isso.

Parece que há um trabalho sobre uma linguagem de programação estranha, mas que acho muito interessante chamada brainfuck. Não vi o enunciado, mas ao que parece é necessário fazer pelo menos uma instância de Show e de Read para os tipos que representam programas em brainfuck.


2010-01-22

Sockets cliente/servidor

O que é um socket?

De uma forma muito simples e rápida (visto isto ser matéria que diz respeito a Comunicações por Computador), um socket é uma das pontas de um canal de comunicação entre duas máquinas.

2010-01-08

Testes

Não tenho tido tempo para acabar a série sobre excepções ou para fazer um post sobre sockets (estou a tratar disso :). Aqui fica um post (a “pedido” de um colega) que já tinha preparado há uns tempos…


Como é que testam o vosso código?