summaryrefslogtreecommitdiffhomepage
path: root/pt-br/whip-pt.html.markdown
diff options
context:
space:
mode:
Diffstat (limited to 'pt-br/whip-pt.html.markdown')
-rw-r--r--pt-br/whip-pt.html.markdown247
1 files changed, 0 insertions, 247 deletions
diff --git a/pt-br/whip-pt.html.markdown b/pt-br/whip-pt.html.markdown
deleted file mode 100644
index b11faf28..00000000
--- a/pt-br/whip-pt.html.markdown
+++ /dev/null
@@ -1,247 +0,0 @@
----
-language: whip
-contributors:
- - ["Tenor Biel", "http://github.com/L8D"]
- - ["Saurabh Sandav", "http://github.com/SaurabhSandav"]
-author: Tenor Biel
-author_url: http://github.com/L8D
-translators:
- - ["Paulo Henrique Rodrigues Pinheiro", "https://github.com/paulohrpinheiro"]
-lang: pt-br
-filename: whip-pt.lisp
----
-
-Whip é um dialeto de Lisp feito para construir scripts e trabalhar com
-conceitos mais simples.
-Ele também copia muitas funções e sintaxe de Haskell (uma linguagem não correlata)
-
-Esse documento foi escrito pelo próprio autor da linguagem. Então é isso.
-
-```scheme
-; Comentário são como em Lisp. Pontos-e-vírgulas...
-
-; A maioria das declarações de primeiro nível estão dentro de "listas"
-; que nada mais são que coisas entre parênteses separadas por espaços em branco
-nao_é_uma_lista
-(uma lista)
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-; 1. Números, texto e operadores
-
-; Whip tem um tipo numérico (que é um double de 64 bits IEE 754, do JavaScript)
-3 ; => 3
-1.5 ; => 1.5
-
-; Funções são chamadas se elas são o primeiro elemento em uma lista
-(funcao_chamada argumentos)
-
-; A maioria das operações são feitas com funções
-; Todas as funções aritméticas básicas são bem diretas
-(+ 1 1) ; => 2
-(- 2 1) ; => 1
-(* 1 2) ; => 2
-(/ 2 1) ; => 2
-; até mesmo o módulo
-(% 9 4) ; => 1
-; Divisão não inteira ao estilo JavaScript.
-(/ 5 2) ; => 2.5
-
-; Aninhamento de listas funciona como esperado.
-(* 2 (+ 1 3)) ; => 8
-
-; Há um tipo boleano.
-true
-false
-
-; Textos são criados com ".
-"Hello, world"
-
-; Caracteres são criados com '.
-'a'
-
-; Para negação usa-se a função 'not'.
-(not true) ; => false
-(not false) ; => true
-
-; Mas a maioria das funções não-haskell tem atalhos
-; o atalho para "não" é um '!'.
-(! (! true)) ; => true
-
-; Igualdade é `equal` ou `=`.
-(= 1 1) ; => true
-(equal 2 1) ; => false
-
-; Por exemplo, desigualdade pode ser verificada combinando as funções
-;`not` e `equal`.
-(! (= 2 1)) ; => true
-
-; Mais comparações
-(< 1 10) ; => true
-(> 1 10) ; => false
-; e suas contra partes para texto.
-(lesser 1 10) ; => true
-(greater 1 10) ; => false
-
-; Texto pode ser concatenado com +.
-(+ "Hello " "world!") ; => "Hello world!"
-
-; Você pode usar as características comparativas do JavaScript.
-(< 'a' 'b') ; => true
-; ... e coerção de tipos
-(= '5' 5)
-
-; As funções `at` ou `@` acessarão caracteres de um texto, começando em 0.
-(at 0 'a') ; => 'a'
-(@ 3 "foobar") ; => 'b'
-
-; Também existem as variáveis `null` e `undefined`.
-null ; usada para indicar a ausência de algum valor
-undefined ; usada para indicar que um valor não foi informado
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-; 2. Variáveis, matrizes e dicionários
-
-; Variáveis são declaradas com as funções `def` ou `let`.
-; Variáveis que não tiveram valor atribuído serão `undefined`.
-(def some_var 5)
-; `def` deixará a variável no contexto global.
-; `let` deixará a variável no contexto local, e tem uma sintaxe estranha.
-(let ((a_var 5)) (+ a_var 5)) ; => 10
-(+ a_var 5) ; = undefined + 5 => undefined
-
-; Matrizes são listas de valores de qualquer tipo.
-; Elas basicamente são listas sem funções no início
-(1 2 3) ; => [1, 2, 3] (sintaxe JavaScript)
-
-; Dicionários em Whip são o equivalente a 'object' em JavaScript ou
-; 'dict' em python ou 'hash' em Ruby: eles são uma coleção desordenada
-de pares chave-valor.
-{"key1" "value1" "key2" 2 3 3}
-
-; Chaves podem ser apenas identificadores, números ou texto.
-(def my_dict {my_key "my_value" "my other key" 4})
-; Mas em Whip, dicionários são parceados como: valor, espaço, valor;
-; com mais espaço entre cada. Então isso significa que
-{"key" "value"
-"another key"
-1234
-}
-é avaliado da mesma forma que
-{"key" "value" "another key" 1234}
-
-; Dicionários podem ser acessados usando a função `at`
-; (como em texto e listas)
-(@ "my other key" my_dict) ; => 4
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-; 3. Lógica e controle de fluxo
-
-; A função `if` é muito simples, ainda que muito diferente do que em muitas
-linguagens imperativas.
-(if true "returned if first arg is true" "returned if first arg is false")
-; => "returned if first arg is true"
-
-; E por conta do legado operador ternário
-; `?` é o atalho não utilizado para `if`.
-(? false true false) ; => false
-
-; `both` é uma declaração lógica `and`, e `either` é o `or` lógico.
-(both true true) ; => true
-(both true false) ; => false
-(either true false) ; => true
-(either false false) ; => false
-; E seus atalhos são
-; & => both
-; ^ => either
-(& true true) ; => true
-(^ false true) ; => true
-
-;;;;;;;;;
-; Lambdas
-
-; Lambdas em Whip são declaradas com as funções `lambda` ou `->`.
-; E funções são na verdade lambdas com nomes.
-(def my_function (-> (x y) (+ (+ x y) 10)))
-; | | | |
-; | | | valor retornado (com escopo contento argumentos)
-; | | argumentos
-; | declaração de funções lambda
-; |
-; nome do lambda a ser declarado
-
-(my_function 10 10) ; = (+ (+ 10 10) 10) => 30
-
-; Obviamente, todos os lambdas por definição são anônimos e
-; tecnicamente sempre usados anonimamente. Redundância.
-((lambda (x) x) 10) ; => 10
-
-;;;;;;;;;;;;;;;;
-; Comprehensions
-
-; `range` or `..` geram uma lista dos números para
-; cada número entre seus dois argumentos.
-(range 1 5) ; => (1 2 3 4 5)
-(.. 0 2) ; => (0 1 2)
-
-; `map` aplica seu primeiro argumento (que deve ser um lambda/função)
-; a cada item dos argumentos seguintes (que precisa ser uma lista)
-(map (-> (x) (+ x 1)) (1 2 3)) ; => (2 3 4)
-
-; Reduce
-(reduce + (.. 1 5))
-; equivalente a
-((+ (+ (+ 1 2) 3) 4) 5)
-
-; Nota: map e reduce não possuem atalhos
-
-; `slice` ou `\` é similar ao .slice() do JavaScript
-; mas veja que ele pega uma lista como primeiro argumento, não o último.
-(slice (.. 1 5) 2) ; => (3 4 5)
-(\ (.. 0 100) -5) ; => (96 97 98 99 100)
-
-; `append` ou `<<` são auto explicativos
-(append 4 (1 2 3)) ; => (1 2 3 4)
-(<< "bar" ("foo")) ; => ("foo" "bar")
-
-; Length é auto explicativo.
-(length (1 2 3)) ; => 3
-(_ "foobar") ; => 6
-
-;;;;;;;;;;;;;;;
-; Delicadezas Haskell
-
-; Primeiro item de uma lista
-(head (1 2 3)) ; => 1
-; Pega do segundo ao último elemento de uma lista
-(tail (1 2 3)) ; => (2 3)
-; Último item de uma lista
-(last (1 2 3)) ; => 3
-; Contrário de `tail`
-(init (1 2 3)) ; => (1 2)
-; Pega do primeiro até o elemento especificado da lista
-(take 1 (1 2 3 4)) ; (1 2)
-; Contrário de `take`
-(drop 1 (1 2 3 4)) ; (3 4)
-; Menor valor em uma lista
-(min (1 2 3 4)) ; 1
-; Maior valor em uma lista
-(max (1 2 3 4)) ; 4
-; Verifica se o valor está em uma lista ou objeto
-(elem 1 (1 2 3)) ; true
-(elem "foo" {"foo" "bar"}) ; true
-(elem "bar" {"foo" "bar"}) ; false
-; Inverte a ordem de uma lista
-(reverse (1 2 3 4)) ; => (4 3 2 1)
-; Verifica se o valor é par ou ímpar
-(even 1) ; => false
-(odd 1) ; => true
-; Separa um texto cortando por espaço em branco
-(words "foobar nachos cheese") ; => ("foobar" "nachos" "cheese")
-; Junta lista de textos
-(unwords ("foo" "bar")) ; => "foobar"
-; Sucessor e predecessor
-(pred 21) ; => 20
-(succ 20) ; => 21
-```
-
-Para mais informação, verifique o [repositório](http://github.com/L8D/whip)