Se você seguiu a Parte I desta série de artigos, está com a MIT/GNU Scheme 11.2 instalada e configurada em seu sistema. Agora precisamos configurar alguma editor de texto para escrever código em Scheme e executar esses códigos. Aqui temos 2 opções:
- Edwin: é um editor que vem junto com a MIT/GNU Scheme, baseado em uma versão antiga do Emacs, que foi modificado para o uso com a Scheme; ou
- Emacs: podemos usar a versão mais nova do Emacs, junto com a biblioteca xscheme.
1. Configuração do Edwin
Ao instalar a MIT/GNU Scheme 11.2, você instala também o Edwin, o editor padrão criado pelo MIT (baseado em uma distriuição antiga do Emacs). Para iniciar o Edwin basta rodar o comando:
mit-scheme -edit
Você verá a janela padrão do Edwin:
As configurações padronizadas do Edwin não são muito atrativas visualmente mas podemos resolver isso facilmente acrescentando algumas configurações no arquivo ~/.edwin
. Para facilitar mais ainda, vamos usar o arquivo distribuído para uso na MIT 6.945 (Don’t Panic!). Clique aqui e faça o download do arquivo prontinho, descompacte e salve em seu diretório $HOME. Depois inicie o Edwin novamente:
Com o tempo você aprenderá a ajustar o arquivo ~/.edwin
para que ele fique mais adequado às suas preferências.
O Edwin tem diversos atalhos úteis para a criação e execução de código Scheme. Consulte a documentação para maiores informações!
2. Configuração do Emacs
A configuração do Emacs é simples, basta acrescentar duas linhas ao arquivo ~/.emacs
:
(require 'xscheme) (setq scheme-program-name "/opt/mit-scheme-11.2-x86-64/bin/mit-scheme")
Por exemplo, você pode acrescentar algo como:
Depois é só usar o Emacs para editar os códigos em Scheme e carregar a MIT/GNU Scheme para executar o código diretamente dentro do Emacs com o comando M-x run-scheme
:
Assim você pode escrever E executar o código diretamente de dentro do Emacs:
3. Edwin ou Emacs?
Na maioria das vezes, por comodidade, eu utilizo o Emacs. Mas há ferramentas no Edwin que não estão disponíveis no Emacs como, por exemplo, o debugger/steeper passo-a-passo do Edwin. Então eu acabo utilizando o Edwin algumas vezes para estudar, debugar e entender melhor algum código.
Use os dois caso você precise!