Comparação da linguagem Potigol com outras linguagens.
Linguagem | Versão | Apresentar versão |
---|---|---|
Potigol | 0.9.15 | $ potigol |
Python | 3.6 | $ python --version |
Java | 9.0 | $ java -version |
Scala | 2.12.4 | $ scala -version |
Linguagem | Comando |
---|---|
Potigol | $ potigol programa.poti |
Python | $ python programa.py |
Java | $ javac Programa.java $ java Programa |
Scala | $ scalac programa.scala $ scala programa ou $ scala programa.scala |
Linguagem | Blocos | Separador de comandos | Comentário de linha |
---|---|---|---|
Potigol | faça fim |
espaço | # comentário |
Python | : e identação |
nova linha ou ; |
# comentário |
Java | { } |
; |
// comentário |
Scala | { } |
nova linha ou ; |
// comentário |
Linguagem | Variável | Constante | |
---|---|---|---|
Potigol | var x := 10 var y, z := 20, 30 |
x = 10 y, z = 20, 30 |
`` |
Python | x = 10 y, z = 20, 30 |
PI = 3.14 |
`` |
Java | int x = 10; |
final int x = 10; |
`` |
Scala | var x = 10 var y, z = 20, 30 declaração explícita do tipo: var x: Int = 10 |
val x = 10 val y, z = 20, 30 |
`` |
Linguagem | Atribuição | Atribuição Paralela | Permutação |
---|---|---|---|
Potigol | x := 10 |
x, y, z := 10, 20, 30 |
x, y := y, x |
Python | x = 10 |
x, y, z = 10, 20, 30 |
x, y = y, x |
Java | x = 10; |
não tem | não tem |
Scala | x = 10 |
não tem | não tem |
Linguagem | Valores | Operadores lógicos | Operadores relacionais |
---|---|---|---|
Potigol | verdadeiro falso |
e ou não |
== <> > < >= <= |
Python | `` | `` | `` |
Java | `` | `` | `` |
Scala | `` | `` | `` |
Linguagem | Operadores aritiméticos | Potenciação | Raiz |
---|---|---|---|
Potigol | + - * / div mod |
^ |
raiz(2.0) raiz(2.0, 2) |
Python | `` | `` | `` |
Java | `` | `` | `` |
Scala | `` | `` | `` |
Linguagem | Trigonometria | Aleatório | Absoluto |
---|---|---|---|
Potigol | sen cos tg arcsen arccos arctg |
aleatório(10) aleatório(1,10) aleatório(["a","e","i","o","u"]) |
abs(-2) |
Python | `` | `` | `` |
Java | `` | `` | `` |
Scala | `` | `` | `` |
Linguagem | Literal | Quebra de linha | Interpolação |
---|---|---|---|
Potigol | "texto" |
"Isto é um texto" |
x, y = 10, 20 "A soma {x} + {y} = {x + y}." |
Python | `` | `` | `` |
Java | `` | `` | `` |
Scala | `` | `` | `` |
Linguagem | Concatenação | Replicar | Maiúsculo / Minúsculo |
---|---|---|---|
Potigol | "Olá " + "mundo" |
"-" * 20 |
"Ola".maiúsculo "Ola".minúsculo |
Python | `` | `` | `` |
Java | `` | `` | `` |
Scala | `` | `` | `` |
Linguagem | Partes | Tamanho | Elementos |
---|---|---|---|
Potigol | ola = "Olá mundo".pegue(3) mundo = "Olá Mundo".descarte(4) |
"texto".tamanho |
a = "Olá mundo" a[1] # 'O' |
Python | `` | `` | `` |
Java | `` | `` | `` |
Scala | `` | `` | `` |
Linguagem | Literal | Preenchida | Tamanho | Vazia |
---|---|---|---|---|
Potigol | a = [1, 2, 3, 4] |
a = Lista(10, 0) |
a.tamanho |
a == [] |
Python | `` | `` | `` | `` |
Java | `` | `` | `` | `` |
Scala | `` | `` | `` | `` |
Linguagem | Ordenar | Inverter | Unir |
---|---|---|---|
Potigol | [2, 3, 1, 4].ordene |
[2, 3, 1, 4].inverta |
[2, 3] +[1, 4] |
Python | `` | `` | `` |
Java | `` | `` | `` |
Scala | `` | `` | `` |
Linguagem | Mapeamento | Filtro | Redução |
---|---|---|---|
Potigol | a = [1, 2, 3, 4] a.mapeie(n => n * 2) |
a.selecione(n => n mod 2 ==0) |
a.reduza(0)((n,m) => n + m) |
Python | `` | `` | `` |
Java | `` | `` | `` |
Scala | `` | `` | `` |
Linguagem | Definição linha | Definição bloco | Aplicação |
---|---|---|---|
Potigol | soma(a, b: Inteiro) = a + b pos(s: Texto, n: Inteiro) = s[n] |
soma(a, b: Inteiro) c = a + b retorne c fim fat(n: Inteiro): Inteiro a = se n>1 então fat(n-1) senão 1 fim retorne c fim |
soma(2, 3) |
Python | |||
Java | |||
Scala |
Linguagem | Literal | Invocação | Função como valor |
---|---|---|---|
Potigol | (a, b: Inteiro) => a + b |
((a, b: Inteiro) => a + b)(2,3) |
soma = (a, b: Inteiro) => a + b |
Python | `` | `` | `` |
Java | `` | `` | `` |
Scala | `` | `` | `` |
Linguagem | Se | Escolha |
---|---|---|
Potigol | se n==0 então escreva "nenhum" senãose n==1 então escreva "um" senão escreva "vários" fim |
escolha n caso 0 => escreva "nenhum" caso 1 => escreva "um" caso _ => escreva "vários" fim |
Python | `` | `` |
Java | `` | `` |
Scala | `` | `` |
Linguagem | Para | Enquanto |
---|---|---|
Potigol | para i de 1 até 10 faça escreva i fim para i de 1 até 10 passo 2 faça escreva i fim |
var i := 1 enquanto i <= 10 faça escreva "i" i := i + 1 fim |
Python | `` | `` |
Java | `` | `` |
Scala | `` | `` |
Linguagem | Definição | Uso |
---|---|---|
Potigol | tipo Pessoa nome, email: Texto var telefone: Texto fim |
joao = Pessoa("Joao", "joao@email.com", "98888-8888") escreva joao.nome joao.telefone:="99999-9999" |
Python | `` | `` |
Java | `` | `` |
Scala | `` | `` |
Linguagem | Definição | Uso |
---|---|---|
Potigol | tipo Pessoa nome, email: Texto var telefone: Texto ligar() escreva "ligando para {telenone}" fim fim |
joao = Pessoa("Joao", "joao@email.com", "98888-8888") escreva joao.nome joao.telefone:="99999-9999" joao.ligar |
Python | `` | `` |
Java | `` | `` |
Scala | `` | `` |