mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2025-01-17 21:49:22 +01:00
English content removed
The pt-br file had english content after translation. That content is now removed.
This commit is contained in:
parent
7843270313
commit
c013b2c957
@ -1,203 +0,0 @@
|
|||||||
---
|
|
||||||
language: pogoscript
|
|
||||||
contributors:
|
|
||||||
- ["Tim Macfarlane", "http://github.com/refractalize"]
|
|
||||||
translators:
|
|
||||||
- ["Cássio Böck", "https://github.com/cassiobsilva"]
|
|
||||||
filename: learnPogo-pt-br.pogo
|
|
||||||
lang: pt-br
|
|
||||||
---
|
|
||||||
|
|
||||||
Pogoscript é uma linguagem de programação que possui tipos primitivos concorrents
|
|
||||||
e que compila para linguagem Javascript padrão.
|
|
||||||
|
|
||||||
``` javascript
|
|
||||||
// definindo uma variável
|
|
||||||
water temperature = 24
|
|
||||||
|
|
||||||
// reatribuindo o valor de uma variável após a sua definição
|
|
||||||
water temperature := 26
|
|
||||||
|
|
||||||
// funções permitem que seus parâmetros sejam colocados em qualquer lugar
|
|
||||||
temperature at (a) altitude = 32 - a / 100
|
|
||||||
|
|
||||||
// funções longas são apenas indentadas
|
|
||||||
temperature at (a) altitude :=
|
|
||||||
if (a < 0)
|
|
||||||
water temperature
|
|
||||||
else
|
|
||||||
32 - a / 100
|
|
||||||
|
|
||||||
// declarando uma função
|
|
||||||
current temperature = temperature at 3200 altitude
|
|
||||||
|
|
||||||
// essa função cria um novo objeto com métodos
|
|
||||||
position (x, y) = {
|
|
||||||
x = x
|
|
||||||
y = y
|
|
||||||
|
|
||||||
distance from position (p) =
|
|
||||||
dx = self.x - p.x
|
|
||||||
dy = self.y - p.y
|
|
||||||
Math.sqrt (dx * dx + dy * dy)
|
|
||||||
}
|
|
||||||
|
|
||||||
// `self` é similiar ao `this` do Javascript, com exceção de que `self` não
|
|
||||||
// é redefinido em cada nova função
|
|
||||||
|
|
||||||
// declaração de métodos
|
|
||||||
position (7, 2).distance from position (position (5, 1))
|
|
||||||
|
|
||||||
// assim como no Javascript, objetos também são hashes
|
|
||||||
position.'x' == position.x == position.('x')
|
|
||||||
|
|
||||||
// arrays
|
|
||||||
positions = [
|
|
||||||
position (1, 1)
|
|
||||||
position (1, 2)
|
|
||||||
position (1, 3)
|
|
||||||
]
|
|
||||||
|
|
||||||
// indexando um array
|
|
||||||
positions.0.y
|
|
||||||
|
|
||||||
n = 2
|
|
||||||
positions.(n).y
|
|
||||||
|
|
||||||
// strings
|
|
||||||
poem = 'Tail turned to red sunset on a juniper crown a lone magpie cawks.
|
|
||||||
Mad at Oryoki in the shrine-room -- Thistles blossomed late afternoon.
|
|
||||||
Put on my shirt and took it off in the sun walking the path to lunch.
|
|
||||||
A dandelion seed floats above the marsh grass with the mosquitos.
|
|
||||||
At 4 A.M. the two middleaged men sleeping together holding hands.
|
|
||||||
In the half-light of dawn a few birds warble under the Pleiades.
|
|
||||||
Sky reddens behind fir trees, larks twitter, sparrows cheep cheep cheep
|
|
||||||
cheep cheep.'
|
|
||||||
|
|
||||||
// texto de Allen Ginsburg
|
|
||||||
|
|
||||||
// interpolação
|
|
||||||
outlook = 'amazing!'
|
|
||||||
console.log "the weather tomorrow is going to be #(outlook)"
|
|
||||||
|
|
||||||
// expressões regulares
|
|
||||||
r/(\d+)m/i
|
|
||||||
r/(\d+) degrees/mg
|
|
||||||
|
|
||||||
// operadores
|
|
||||||
true @and true
|
|
||||||
false @or true
|
|
||||||
@not false
|
|
||||||
2 < 4
|
|
||||||
2 >= 2
|
|
||||||
2 > 1
|
|
||||||
|
|
||||||
// os operadores padrão do Javascript também são suportados
|
|
||||||
|
|
||||||
// definindo seu próprio operador
|
|
||||||
(p1) plus (p2) =
|
|
||||||
position (p1.x + p2.x, p1.y + p2.y)
|
|
||||||
|
|
||||||
// `plus` pode ser usado com um operador
|
|
||||||
position (1, 1) @plus position (0, 2)
|
|
||||||
// ou como uma função
|
|
||||||
(position (1, 1)) plus (position (0, 2))
|
|
||||||
|
|
||||||
// retorno explícito
|
|
||||||
(x) times (y) = return (x * y)
|
|
||||||
|
|
||||||
// new
|
|
||||||
now = @new Date ()
|
|
||||||
|
|
||||||
// funções podem receber argumentos opcionais
|
|
||||||
spark (position, color: 'black', velocity: {x = 0, y = 0}) = {
|
|
||||||
color = color
|
|
||||||
position = position
|
|
||||||
velocity = velocity
|
|
||||||
}
|
|
||||||
|
|
||||||
red = spark (position 1 1, color: 'red')
|
|
||||||
fast black = spark (position 1 1, velocity: {x = 10, y = 0})
|
|
||||||
|
|
||||||
// funções também podem ser utilizadas para realizar o "unsplat" de argumentos
|
|
||||||
log (messages, ...) =
|
|
||||||
console.log (messages, ...)
|
|
||||||
|
|
||||||
// blocos são funções passadas para outras funções.
|
|
||||||
// Este bloco recebe dois parâmetros, `spark` e `c`,
|
|
||||||
// o corpo do bloco é o código indentado após a declaração da função
|
|
||||||
|
|
||||||
render each @(spark) into canvas context @(c)
|
|
||||||
ctx.begin path ()
|
|
||||||
ctx.stroke style = spark.color
|
|
||||||
ctx.arc (
|
|
||||||
spark.position.x + canvas.width / 2
|
|
||||||
spark.position.y
|
|
||||||
3
|
|
||||||
0
|
|
||||||
Math.PI * 2
|
|
||||||
)
|
|
||||||
ctx.stroke ()
|
|
||||||
|
|
||||||
// chamadas assíncronas
|
|
||||||
|
|
||||||
// O Javascript, tanto no navegador quanto no servidor (através do Node.js)
|
|
||||||
// realiza um uso massivo de funções assíncronas de E/S (entrada/saída) com
|
|
||||||
// chamadas de retorno (callbacks). A E/S assíncrona é ótima para a performance e
|
|
||||||
// torna a utilização da concorrência simples, porém pode rapidamente se tornar
|
|
||||||
// algo complicado.
|
|
||||||
// O Pogoscript possui algumas coisas que tornam o uso de E/S assíncrono muito
|
|
||||||
// mais fácil
|
|
||||||
|
|
||||||
// O Node.js inclui o móduolo `fs` para acessar o sistema de arquivos.
|
|
||||||
// Vamos listar o conteúdo de um diretório
|
|
||||||
|
|
||||||
fs = require 'fs'
|
|
||||||
directory listing = fs.readdir! '.'
|
|
||||||
|
|
||||||
// `fs.readdir()` é uma função assíncrona, então nos a chamamos usando o
|
|
||||||
// operador `!`. O operador `!` permite que você chame funções assíncronas
|
|
||||||
// com a mesma sintaxe e a mesma semântica do que as demais funções síncronas.
|
|
||||||
// O Pogoscript reescreve a função para que todo código inserido após o
|
|
||||||
// operador seja inserido em uma função de callback para o `fs.readdir()`.
|
|
||||||
|
|
||||||
// obtendo erros ao utilizar funções assíncronas
|
|
||||||
|
|
||||||
try
|
|
||||||
another directory listing = fs.readdir! 'a-missing-dir'
|
|
||||||
catch (ex)
|
|
||||||
console.log (ex)
|
|
||||||
|
|
||||||
// na verdade, se você não usar o `try catch`, o erro será passado para o
|
|
||||||
// `try catch` mais externo do evento, assim como é feito em exceções síncronas
|
|
||||||
|
|
||||||
// todo o controle de estrutura também funciona com chamadas assíncronas
|
|
||||||
// aqui um exemplo de `if else`
|
|
||||||
config =
|
|
||||||
if (fs.stat! 'config.json'.is file ())
|
|
||||||
JSON.parse (fs.read file! 'config.json' 'utf-8')
|
|
||||||
else
|
|
||||||
{
|
|
||||||
color: 'red'
|
|
||||||
}
|
|
||||||
|
|
||||||
// para executar duas chamadas assíncronas de forma concorrente, use o
|
|
||||||
// operador `?`.
|
|
||||||
// O operador `?` retorna um *future*, que pode ser executado para
|
|
||||||
// aguardar o resultado, novamente utilizando o operador `!`
|
|
||||||
|
|
||||||
// nós não esperamos nenhuma dessas chamadas serem concluídas
|
|
||||||
a = fs.stat? 'a.txt'
|
|
||||||
b = fs.stat? 'b.txt'
|
|
||||||
|
|
||||||
// agora nos aguardamos o término das chamadas e escrevemos os resultados
|
|
||||||
console.log "size of a.txt is #(a!.size)"
|
|
||||||
console.log "size of b.txt is #(b!.size)"
|
|
||||||
|
|
||||||
// no Pogoscript, futures são semelhantes a Promises
|
|
||||||
```
|
|
||||||
E encerramos por aqui.
|
|
||||||
|
|
||||||
Baixe o [Node.js](http://nodejs.org/) e execute `npm install pogo`.
|
|
||||||
|
|
||||||
Há bastante documentação em [http://pogoscript.org/](http://pogoscript.org/), incluindo um material para [consulta rápida](http://pogoscript.org/cheatsheet.html), um [guia](http://pogoscript.org/guide/), e como o [Pogoscript é traduzido para o Javascript](http://featurist.github.io/pogo-examples/). Entre em contato através do [grupo do Google](http://groups.google.com/group/pogoscript) se você possui dúvidas!
|
|
@ -6,6 +6,7 @@ contributors:
|
|||||||
- ["Sean Corrales", "https://github.com/droidenator"]
|
- ["Sean Corrales", "https://github.com/droidenator"]
|
||||||
translators:
|
translators:
|
||||||
- ["Gabriel Gomes", "https://github.com/gabrielgomesferraz"]
|
- ["Gabriel Gomes", "https://github.com/gabrielgomesferraz"]
|
||||||
|
- ["Cássio Böck", "https://github.com/cassiobsilva"]
|
||||||
lang: pt-br
|
lang: pt-br
|
||||||
---
|
---
|
||||||
|
|
||||||
@ -155,16 +156,6 @@ body {
|
|||||||
background-color: rgba(0, 0, 0, 0.75);
|
background-color: rgba(0, 0, 0, 0.75);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* You may also define your own functions. Functions are very similar to
|
|
||||||
mixins. When trying to choose between a function or a mixin, remember
|
|
||||||
that mixins are best for generating CSS while functions are better for
|
|
||||||
logic that might be used throughout your Sass code. The examples in
|
|
||||||
the Math Operators' section are ideal candidates for becoming a reusable
|
|
||||||
function. */
|
|
||||||
|
|
||||||
/* This function will take a target size and the parent size and calculate
|
|
||||||
and return the percentage */
|
|
||||||
|
|
||||||
/* Você também pode definir suas próprias funções. As funções são muito semelhantes aos
|
/* Você também pode definir suas próprias funções. As funções são muito semelhantes aos
|
||||||
mixins. Ao tentar escolher entre uma função ou um mixin, lembre-
|
mixins. Ao tentar escolher entre uma função ou um mixin, lembre-
|
||||||
que mixins são os melhores para gerar CSS enquanto as funções são melhores para
|
que mixins são os melhores para gerar CSS enquanto as funções são melhores para
|
||||||
@ -319,11 +310,6 @@ ol {
|
|||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Sass offers @import which can be used to import partials into a file.
|
|
||||||
This differs from the traditional CSS @import statement which makes
|
|
||||||
another HTTP request to fetch the imported file. Sass takes the
|
|
||||||
imported file and combines it with the compiled code. */
|
|
||||||
|
|
||||||
/* Sass oferece @import que pode ser usado para importar parciais em um arquivo.
|
/* Sass oferece @import que pode ser usado para importar parciais em um arquivo.
|
||||||
Isso difere da declaração CSS @import tradicional, que faz
|
Isso difere da declaração CSS @import tradicional, que faz
|
||||||
outra solicitação HTTP para buscar o arquivo importado. Sass converte os
|
outra solicitação HTTP para buscar o arquivo importado. Sass converte os
|
||||||
@ -354,12 +340,6 @@ body {
|
|||||||
==============================*/
|
==============================*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Placeholders are useful when creating a CSS statement to extend. If you
|
|
||||||
wanted to create a CSS statement that was exclusively used with @extend,
|
|
||||||
you can do so using a placeholder. Placeholders begin with a '%' instead
|
|
||||||
of '.' or '#'. Placeholders will not appear in the compiled CSS. */
|
|
||||||
|
|
||||||
/* Os espaços reservados são úteis na criação de uma declaração CSS para ampliar. Se você
|
/* Os espaços reservados são úteis na criação de uma declaração CSS para ampliar. Se você
|
||||||
queria criar uma instrução CSS que foi usado exclusivamente com @extend,
|
queria criar uma instrução CSS que foi usado exclusivamente com @extend,
|
||||||
Você pode fazer isso usando um espaço reservado. Espaços reservados começar com um '%' em vez
|
Você pode fazer isso usando um espaço reservado. Espaços reservados começar com um '%' em vez
|
||||||
@ -396,11 +376,6 @@ body {
|
|||||||
============================== * /
|
============================== * /
|
||||||
|
|
||||||
|
|
||||||
/* Sass provides the following operators: +, -, *, /, and %. These can
|
|
||||||
be useful for calculating values directly in your Sass files instead
|
|
||||||
of using values that you've already calculated by hand. Below is an example
|
|
||||||
of a setting up a simple two column design. */
|
|
||||||
|
|
||||||
/* Sass fornece os seguintes operadores: +, -, *, /, e %. estes podem
|
/* Sass fornece os seguintes operadores: +, -, *, /, e %. estes podem
|
||||||
ser úteis para calcular os valores diretamente no seu Sass arquivos em vez
|
ser úteis para calcular os valores diretamente no seu Sass arquivos em vez
|
||||||
de usar valores que você já calculados pela mão. Abaixo está um exemplo
|
de usar valores que você já calculados pela mão. Abaixo está um exemplo
|
||||||
|
Loading…
x
Reference in New Issue
Block a user