Aula 15

Prolog online

1 Strings

Tradicionalmente, em Prolog,strings são (como no haskell) lista de caracteres e caracteres são interos pequenos.

A = `abc efg 123`.

Implementação é um problema. SWI modificou o Prolog para que strings sejam um tipo basico (mas que pode ser convertido para listas).

manual do swiprolog para strings

A = "abc efg 123".

Entre " é o tipo novo com predicados para processar esse tipo

  • string_concat
  • split_string
  • sub_string

1.1 string p/ listas

Ha na verdade 2 representações de caracteres

  • codes são os inteiros pequenos
  • chars são simbolos cujo nome é apenas a letra
string_codes("abc efg 123",B).

string_chars("abc efg 123",B).

2 Input

Leitura de baixo nivel (por caracter) manual

Leitura de termos de prolog completos (terminados por ponto). read

read(X).

SWI prolog tem um predicado read_string que le strings (internos do SWIProlog).

3 Output

  • Baixo nivel
  • write formatado manual
  • print

4 Bibliotecas

Não há uma biblioteca padrão para "todas" as implementações de prolog. Eu nem sei se exite outras implementaçÕes que não o SWIProlog.

Varios pacotes e mais