mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-12-23 15:24:09 +03:00
Remove bare links
This commit is contained in:
parent
29bf4c1b9f
commit
790a78e3cf
@ -432,8 +432,8 @@ func requestServer() {
|
||||
|
||||
## Més informació
|
||||
|
||||
L'arrel de tot en Go és la web oficial [official Go web site]
|
||||
(https://go.dev/). Allà es pot seguir el tutorial, jugar interactivament
|
||||
L'arrel de tot en Go és la web oficial [official Go web site](https://go.dev/).
|
||||
Allà es pot seguir el tutorial, jugar interactivament
|
||||
i llegir molt més del que hem vist aquí.En el "tour",
|
||||
[the docs](https://go.dev/doc/) conté informació sobre com escriure codi
|
||||
net i efectiu en Go, comandes per empaquetar i generar documentació, i
|
||||
|
@ -10,7 +10,7 @@ translations:
|
||||
- ["Xavier Sala Pujolar", "http://github.com/utrescu"]
|
||||
---
|
||||
|
||||
Groovy - Un llenguatge dinàmic per la plataforma Java [Llegir-ne més.](http://www.groovy-lang.org/)
|
||||
Groovy - Un llenguatge dinàmic per la plataforma Java [Llegir-ne més](http://www.groovy-lang.org/).
|
||||
|
||||
```groovy
|
||||
/*
|
||||
@ -285,7 +285,7 @@ def clos = { print it }
|
||||
clos( "hi" )
|
||||
|
||||
/*
|
||||
Groovy pot recordar els resultats dels Closures [1][2][3]
|
||||
Groovy pot recordar els resultats dels Closures
|
||||
*/
|
||||
def cl = {a, b ->
|
||||
sleep(3000) // simula un procés llarg
|
||||
@ -420,17 +420,10 @@ assert sum(2,5) == 7
|
||||
|
||||
[Cònsola de Groovy](http://groovyconsole.appspot.com/)
|
||||
|
||||
Uneix-te a un [grup d'usuaris Groovy]
|
||||
(http://www.groovy-lang.org/usergroups.html)
|
||||
Uneix-te a un [grup d'usuaris Groovy](http://www.groovy-lang.org/usergroups.html)
|
||||
|
||||
## Llibres
|
||||
|
||||
* [Groovy Goodness] (https://leanpub.com/groovy-goodness-notebook)
|
||||
|
||||
* [Groovy in Action] (http://manning.com/koenig2/)
|
||||
|
||||
* [Programming Groovy 2: Dynamic Productivity for the Java Developer] (http://shop.oreilly.com/product/9781937785307.do)
|
||||
|
||||
[1] http://roshandawrani.wordpress.com/2010/10/18/groovy-new-feature-closures-can-now-memorize-their-results/
|
||||
[2] http://www.solutionsiq.com/resources/agileiq-blog/bid/72880/Programming-with-Groovy-Trampoline-and-Memoize
|
||||
[3] http://mrhaki.blogspot.mx/2011/05/groovy-goodness-cache-closure-results.html
|
||||
* [Groovy Goodness](https://leanpub.com/groovy-goodness-notebook)
|
||||
* [Groovy in Action](http://manning.com/koenig2/)
|
||||
* [Programming Groovy 2: Dynamic Productivity for the Java Developer](http://shop.oreilly.com/product/9781937785307.do)
|
||||
|
@ -74,9 +74,9 @@ False or True # => True
|
||||
0 and 2 # => 0
|
||||
-5 or 0 # => -5
|
||||
|
||||
# Při porovnání s boolean hodnotou nepoužívejte operátor rovnosti "==".
|
||||
# Při porovnání s boolean hodnotou nepoužívejte operátor rovnosti "==".
|
||||
# Stejně jako u hodnoty None.
|
||||
# Viz PEP8: https://www.python.org/dev/peps/pep-0008/
|
||||
# Viz PEP8: https://www.python.org/dev/peps/pep-0008/
|
||||
0 is False # => True
|
||||
2 is True # => False
|
||||
1 is True # => True
|
||||
@ -156,7 +156,7 @@ print("Jsem 3. Python 3.")
|
||||
nazev_promenne = 5
|
||||
nazev_promenne # => 5
|
||||
# Názvy proměnných mohou obsahovat i unicode znaky, ale nedělejte to.
|
||||
# Viz PEP 3131 -- Supporting Non-ASCII Identifiers:
|
||||
# Viz PEP 3131 -- Supporting Non-ASCII Identifiers:
|
||||
# https://www.python.org/dev/peps/pep-3131/
|
||||
název_proměnné = 5
|
||||
|
||||
@ -640,5 +640,6 @@ pozdrav("Pepo") # Vypíše 3x: "Měj se Pepo!"
|
||||
|
||||
## Co dál?
|
||||
|
||||
Spoustu odkazů na české i anglické materiály najdete na [webu české Python komunity]
|
||||
(http://python.cz/). Můžete také přijít na Pyvo, kde to společně probereme.
|
||||
Spoustu odkazů na české i anglické materiály najdete na
|
||||
[webu české Python komunity](http://python.cz/). Můžete
|
||||
také přijít na Pyvo, kde to společně probereme.
|
||||
|
@ -35,7 +35,7 @@ Now we can unify and export to JSON:
|
||||
Or YAML:
|
||||
|
||||
```bash
|
||||
% cue export --out yaml name.cue disposition.cue
|
||||
% cue export --out yaml name.cue disposition.cue
|
||||
name: Daniel
|
||||
disposition: oblivious
|
||||
```
|
||||
@ -60,7 +60,7 @@ foo: 100
|
||||
```
|
||||
|
||||
```bash
|
||||
% cue export string_value.cue integer_value.cue
|
||||
% cue export string_value.cue integer_value.cue
|
||||
foo: conflicting values "baz" and 100 (mismatched types string and int):
|
||||
integer_value.cue:1:6
|
||||
string_value.cue:1:6
|
||||
@ -222,7 +222,7 @@ vatican_city: #Country & {
|
||||
}
|
||||
```
|
||||
|
||||
CUE may save you quite a bit of time with all the sugar it provides on top of mere JSON. Here we're defining, "modifying", and validating a nested structure in three lines: (Notice the `[]` syntax used around `string` to signal to the engine that `string` is a constraint, not a string in this case.)
|
||||
CUE may save you quite a bit of time with all the sugar it provides on top of mere JSON. Here we're defining, "modifying", and validating a nested structure in three lines: (Notice the `[]` syntax used around `string` to signal to the engine that `string` is a constraint, not a string in this case.)
|
||||
|
||||
```yaml
|
||||
//paths.cue
|
||||
@ -388,7 +388,7 @@ j: 8 < 10 // and supports boolean ops
|
||||
price: number
|
||||
// Require a justification if price is too high
|
||||
if price > 100 {
|
||||
justification: string
|
||||
justification: string
|
||||
}
|
||||
price: 200
|
||||
justification: "impulse buy"
|
||||
@ -400,11 +400,11 @@ comp: [ for x in #items if x rem 2 == 0 {x*x}]
|
||||
// and... well you can do this too
|
||||
#a: [ "Apple", "Google", "SpaceX"]
|
||||
for k, v in #a {
|
||||
"\( strings.ToLower(v) )": {
|
||||
pos: k + 1
|
||||
name: v
|
||||
nameLen: len(v)
|
||||
}
|
||||
"\( strings.ToLower(v) )": {
|
||||
pos: k + 1
|
||||
name: v
|
||||
nameLen: len(v)
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
@ -481,7 +481,7 @@ This creates a `cue.mod/` subdirectory within that `mymodule` directory, and `cu
|
||||
- gen/
|
||||
- usr/
|
||||
|
||||
For a different perspective on this and details about what's in there, see https://cuelang.org/docs/concepts/packages/. For my purposes here, I'll say you don't need to think about the contents of this directory *at all*, except that your module name will be the prefix for all imports within your module.
|
||||
For a different perspective on this and details about what's in there, see [cuelang.org/docs/concepts/packages/](https://cuelang.org/docs/concepts/packages/). For my purposes here, I'll say you don't need to think about the contents of this directory *at all*, except that your module name will be the prefix for all imports within your module.
|
||||
|
||||
Where will your module file hierarchy go? All files and directories for your module are rooted in `mymodule/`, the directory that also contains `cue.mod/`. If you want to import a package, you'll prefix it with `example.com/mymodule`, followed by a relative path rooted in `mymodule/`.
|
||||
|
||||
@ -548,6 +548,6 @@ configuredBar: conflicting values string and 200 (mismatched types string and in
|
||||
|
||||
That's it for now. I understand there are more package management features coming in the future and the design decisions around `cue.mod` are looking ahead to that.
|
||||
|
||||
Finally, CUE has built-in modules with powerful functionality. We saw one of these earlier, when we imported "strings" and used `strings.ToLower`. Imports without fully-qualified module names are assumed to be built-ins. The full list and documentation for each is here: https://pkg.go.dev/cuelang.org/go/pkg
|
||||
Finally, CUE has built-in modules with powerful functionality. We saw one of these earlier, when we imported "strings" and used `strings.ToLower`. Imports without fully-qualified module names are assumed to be built-ins. The full list and documentation for each is here: [pkg.go.dev/cuelang.org/go/pkg](https://pkg.go.dev/cuelang.org/go/pkg)
|
||||
|
||||
This has been a condensation of the official docs and tutorials, so go give the source material some love: https://cuelang.org/docs/tutorials/
|
||||
This has been a condensation of the official docs and tutorials, so go give the source material some love: [cuelang.org/docs/tutorials/](https://cuelang.org/docs/tutorials/)
|
||||
|
@ -157,7 +157,7 @@ logger("We have a logger subroutine!");
|
||||
|
||||
#### Verwenden von Perl Modulen
|
||||
|
||||
Perl Module liefern eine Menge an Funktionen die dabei Helfen das Rad nicht neu erfinden zu müssen. Perl Module können von CPAN (http://www.cpan.org/) heruntergeladen werden. Einige populäre Module sind in der Perl Distribution selbst bereits enthalten.
|
||||
Perl Module liefern eine Menge an Funktionen die dabei Helfen das Rad nicht neu erfinden zu müssen. Perl Module können von [CPAN](http://www.cpan.org/) heruntergeladen werden. Einige populäre Module sind in der Perl Distribution selbst bereits enthalten.
|
||||
|
||||
Perlfaq enthält Fragen und Antworten zu häufig vorkommenden Aufgaben. Sehr oft sind auch Vorschläge enthalten welches CPAN module am besten geeignet ist.
|
||||
|
||||
|
@ -12,7 +12,7 @@ contributors:
|
||||
Docker is a tool that helps you build, test, ship and run applications
|
||||
seamlessly across various machines. It replicates the environment our software
|
||||
needs on any machine. You can get Docker for your machine from
|
||||
https://docs.docker.com/get-docker/
|
||||
[docs.docker.com/get-docker/](https://docs.docker.com/get-docker/)
|
||||
|
||||
It has grown in popularity over the last decade due to being lightweight and
|
||||
fast as compared to virtual-machines that are bulky and slow. Unlike VMs, docker
|
||||
@ -65,7 +65,6 @@ in a limited capacity architecture.
|
||||
│ Hardware Infrastructure │
|
||||
└──────────────────────────────────────────────────┘
|
||||
(Docker based architecture)
|
||||
|
||||
</pre>
|
||||
|
||||
Couple of terms we will encounter frequently are Docker Images and Docker
|
||||
@ -148,7 +147,7 @@ $ docker ps -a
|
||||
|
||||
$ docker stop hello-world
|
||||
# or
|
||||
$ docker start hello-world
|
||||
$ docker start hello-world
|
||||
# The stop command simply stops one or more containers, and the start command
|
||||
# starts the container(s) up again! `docker start -a ubuntu` will attach our
|
||||
# detached container back to the terminal i.e. runs in the foreground
|
||||
@ -174,7 +173,7 @@ $ docker images
|
||||
# alpine latest 9c6f07244728 3 months ago 5.54MB
|
||||
# hello-world latest feb5d9fea6a5 13 months ago 13.3kB
|
||||
|
||||
$ docker rmi
|
||||
$ docker rmi
|
||||
# Removes one or more images from your system which do not have their instances
|
||||
# (or containers as we know them) running. If the image has an attached
|
||||
# container, either delete the container first or use the -f (or --force) flag
|
||||
@ -204,12 +203,13 @@ $ docker logs <container-id>
|
||||
|
||||
## The Dockerfile
|
||||
The Dockerfile is a blueprint of a Docker image. We can mention the artifacts
|
||||
from our application along with their configurations into this file in the
|
||||
from our application along with their configurations into this file in the
|
||||
specific syntax to let anyone create a Docker image of our application.
|
||||
|
||||
### A few things to keep in mind:
|
||||
|
||||
* It is always strictly named `Dockerfile` without any extensions
|
||||
* We have to build our custom image on top of some already available Docker base
|
||||
* We have to build our custom image on top of some already available Docker base
|
||||
image. (there is an empty image called `scratch` which literally lets you build
|
||||
an image from scratch)
|
||||
* All capitalised commands are part of the syntax, they are not case-sensitive
|
||||
@ -236,7 +236,7 @@ ENTRYPOINT ["some-script.sh"]
|
||||
# executes an entire script as an entrypoint
|
||||
|
||||
CMD [<args>,...]
|
||||
# always part of dockerfile, introduces entry point linux command e.g.
|
||||
# always part of dockerfile, introduces entry point linux command e.g.
|
||||
# `CMD node server.js`
|
||||
# This executes after image creation only when the container from the image
|
||||
# is running.
|
||||
@ -263,7 +263,7 @@ password on Docker Hub.
|
||||
|
||||
When pushing an image to Docker Hub, we must specify our Docker Hub username
|
||||
as part of the source image name. We need to create the target image with the
|
||||
tag name of username/image-name much like GitHub repositories.
|
||||
tag name of username/image-name much like GitHub repositories.
|
||||
|
||||
```bash
|
||||
$ docker login
|
||||
|
@ -9,7 +9,7 @@ translators:
|
||||
lang: es-es
|
||||
---
|
||||
|
||||
¡Ah!, C. Aun hoy en día sigue siendo el lenguaje por excelencia de la
|
||||
¡Ah!, C. Aun hoy en día sigue siendo el lenguaje por excelencia de la
|
||||
computación moderna de alto rendimiento.
|
||||
|
||||
C es el lenguaje de más bajo nivel que la mayoría de los programadores
|
||||
@ -64,7 +64,7 @@ char y_char = 'y'; // Los caracteres literales se entrecomillan con ''
|
||||
// 'longs' son a menudo de 4 a 8 bytes; 'long longs' son fijo de por lo
|
||||
// menos 64 bits
|
||||
long x_long = 0;
|
||||
long long x_long_long = 0;
|
||||
long long x_long_long = 0;
|
||||
|
||||
// 'floats' son normalmente números de coma flotante de 32 bits
|
||||
float x_float = 0.0;
|
||||
@ -80,7 +80,7 @@ unsigned short ux_short;
|
||||
unsigned int ux_int;
|
||||
unsigned long long ux_long_long;
|
||||
|
||||
// Todos menos 'char', que es siempre de 1 byte, varían el tamaño
|
||||
// Todos menos 'char', que es siempre de 1 byte, varían el tamaño
|
||||
// dependiendo de tu máquina. sizeof(T) te dice el tamaño de una variable
|
||||
// de tipo T en bytes por lo que podemos expresar el tamaño de estos tipos
|
||||
// portatilmente.
|
||||
@ -114,7 +114,7 @@ printf("%s\n", a_string); // %s se sutituye por una cadena.
|
||||
|
||||
/*
|
||||
Te habrás dado cuenta de que a_string es solo de 18 caracteres.
|
||||
El 'char' #19 es el byte nulo.
|
||||
El 'char' #19 es el byte nulo.
|
||||
El 'char' #20 es de valor indefinido.
|
||||
*/
|
||||
|
||||
@ -139,7 +139,7 @@ f1 / f2; // => 0.5, más o menos épsilon
|
||||
|
||||
// Los operadores de comparación te resultaran familiares, pero no hay
|
||||
// booleanos en C. Usamos enteros (ints) en su lugar. 0 es falso,
|
||||
// cualquier otra cosa es verdadero. (Los operadores de comparación
|
||||
// cualquier otra cosa es verdadero. (Los operadores de comparación
|
||||
// siempre devuelven 0 o 1)
|
||||
3 == 2; // => 0 (Falso)
|
||||
3 != 2; // => 1 (Verdadero)
|
||||
@ -226,8 +226,8 @@ printf("%d\n", (char)100.0);
|
||||
// Punteros
|
||||
///////////////////////////////////////
|
||||
|
||||
// Un puntero es una variable declarada para almacenar una dirección de
|
||||
// memoria. Su declaración además nos dirá el tipo de dato al que apunta.
|
||||
// Un puntero es una variable declarada para almacenar una dirección de
|
||||
// memoria. Su declaración además nos dirá el tipo de dato al que apunta.
|
||||
// Puedes obtener la dirección de memoria de tus variables, y después
|
||||
// enlazarlas con ellos.
|
||||
|
||||
@ -242,7 +242,7 @@ px = &x; // Almacena la dirección de x en px
|
||||
printf("%p\n", px); // => Muestra alguna dirección de memoria
|
||||
|
||||
// Para obtener el valor de la dirección a la que apunta un puntero, pon
|
||||
// * delante para desreferenciarle.
|
||||
// * delante para desreferenciarle.
|
||||
printf("%d\n", *px); // => Muestra 0, el valor de x y de la dirección a la
|
||||
// que apunta px
|
||||
|
||||
@ -285,7 +285,7 @@ for (xx=0; xx<20; xx++) {
|
||||
// impredecibles
|
||||
printf("%d\n", *(my_ptr + 21)); // => Prints who-knows-what?
|
||||
|
||||
// Cuando hayas acabado con el bloque de memoría malloc, necesitas
|
||||
// Cuando hayas acabado con el bloque de memoría malloc, necesitas
|
||||
// liberarlo o sino nadie más podrá usarlo hasta que tu programa se cierre
|
||||
free(my_ptr);
|
||||
|
||||
@ -310,8 +310,8 @@ int add_two_ints(int x1, int x2){
|
||||
}
|
||||
|
||||
/*
|
||||
Las funciones son de paso por valor, pero puedes hacer tus propias
|
||||
referencias con punteros de manera que las funciones puedan cambiar sus
|
||||
Las funciones son de paso por valor, pero puedes hacer tus propias
|
||||
referencias con punteros de manera que las funciones puedan cambiar sus
|
||||
valores.
|
||||
|
||||
Ejemplo: invertidor de cadenas in-situ
|
||||
@ -320,7 +320,7 @@ Ejemplo: invertidor de cadenas in-situ
|
||||
// Una función 'void' no retorna valor
|
||||
void str_reverse(char* str_in){
|
||||
char tmp;
|
||||
int ii=0, len = strlen(str_in); // Strlen es parte de la librería
|
||||
int ii=0, len = strlen(str_in); // Strlen es parte de la librería
|
||||
for(ii=0; ii<len/2; ii++){ // estándard
|
||||
tmp = str_in[ii];
|
||||
str_in[ii] = str_in[len - ii - 1]; // ii-th último 'char'
|
||||
@ -379,9 +379,9 @@ int area(rect r){
|
||||
///////////////////////////////////////
|
||||
/*
|
||||
En tiempo de ejecución, las funciones se localizan en unas direcciones de
|
||||
memoria concretas. Los punteros a funciones son como cualquier otro
|
||||
puntero (almacenan una dirección de memoria), pero pueden ser usados para
|
||||
utilizar funciones directamente, o para pasar 'handlers' (o funciones
|
||||
memoria concretas. Los punteros a funciones son como cualquier otro
|
||||
puntero (almacenan una dirección de memoria), pero pueden ser usados para
|
||||
utilizar funciones directamente, o para pasar 'handlers' (o funciones
|
||||
'callback') por todos lados.
|
||||
Sin embargo, la sintaxis de definición parecera confusa al principio.
|
||||
|
||||
@ -413,21 +413,19 @@ typedef void (*my_fnp_type)(char *);
|
||||
|
||||
// Es usado para declarar la variable puntero actual:
|
||||
// ...
|
||||
// my_fnp_type f;
|
||||
// my_fnp_type f;
|
||||
```
|
||||
|
||||
## Otras lecturas
|
||||
|
||||
Lo mejor que puedes encontrar es una copia de [K&R, aka "The C Programming Language"](https://en.wikipedia.org/wiki/The_C_Programming_Language). Es *el*
|
||||
libro de C, escrito por Dennis Ritchie, creador de C y Brian Kernighan. Aún así,
|
||||
se cuidadoso, es antiguo, contiene algunas inexactitudes, y algunas prácticas
|
||||
se cuidadoso, es antiguo, contiene algunas inexactitudes, y algunas prácticas
|
||||
han cambiado.
|
||||
|
||||
Otro buen recurso es [Learn C the hard way](http://learncodethehardway.org/c/).
|
||||
|
||||
Si tienes una pregunta, lee [compl.lang.c Frequently Asked Questions](http://c-faq.com).
|
||||
|
||||
Es muy importante utilizar el espaciado y la sangría apropiados y ser coherente
|
||||
con su estilo de codificación en general. El código legible es mejor que el
|
||||
Es muy importante utilizar el espaciado y la sangría apropiados y ser coherente
|
||||
con su estilo de codificación en general. El código legible es mejor que el
|
||||
código rápido. Para adoptar un buen estilo de codificación, vea el
|
||||
[Estilo de codificación del kernel Linux] (https://www.kernel.org/doc/Documentation/CodingStyle).
|
||||
[estilo de codificación del kernel Linux](https://www.kernel.org/doc/Documentation/CodingStyle).
|
||||
|
@ -10,7 +10,7 @@ lang: es-es
|
||||
---
|
||||
|
||||
ColdFusion es un lenguaje de scripting para desarrollo web.
|
||||
[Lea más aquí](Http://www.adobe.com/products/coldfusion-family.html)
|
||||
[Lea más aquí](http://www.adobe.com/products/coldfusion-family.html)
|
||||
|
||||
### CFML
|
||||
_**C**old**F**usion **M**arkup **L**anguage_
|
||||
|
@ -23,7 +23,7 @@ codigo CSS esta hecho de *reglas* estaticas. Cada regla toma uno o mas *selector
|
||||
Esta guia ha sido escrita con CSS 2 en mente, la cual es extendida por una nueva caracterica de CSS 3.
|
||||
|
||||
**NOTA:** Debido a que CSS produce resultados visuales, para aprenderlo, necesitas
|
||||
Probar todo en un patio de juegos CSS como [dabblet] (http://dabblet.com/).
|
||||
Probar todo en un patio de juegos CSS como [dabblet](http://dabblet.com/).
|
||||
El objetivo principal de este artículo es la sintaxis y algunos consejos generales.
|
||||
|
||||
## Sintaxis
|
||||
@ -31,7 +31,7 @@ El objetivo principal de este artículo es la sintaxis y algunos consejos genera
|
||||
```css
|
||||
/* Los comentarios aparecen dentro de un diagonal-asterisco, justo como esta linea
|
||||
no hay "comentarios en una linea"; este es el unico estilo de comentario.*/
|
||||
|
||||
|
||||
|
||||
/* ####################
|
||||
## SELECTORS
|
||||
@ -176,7 +176,7 @@ selector {
|
||||
border-style:solid;
|
||||
border-color:red; /* similar to how background-color is set */
|
||||
border: 5px solid red; /* this is a short hand approach for the same */
|
||||
border-radius:20px; /* this is a CSS3 property */
|
||||
border-radius:20px; /* this is a CSS3 property */
|
||||
|
||||
/* Images as backgrounds of elements */
|
||||
background-image: url(/img-path/img.jpg); /* quotes inside url() optional */
|
||||
@ -323,5 +323,3 @@ a new feature.
|
||||
* [Z-Index - The stacking context](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Understanding_z_index/The_stacking_context)
|
||||
* [SASS](http://sass-lang.com/) and [LESS](http://lesscss.org/) for CSS pre-processing
|
||||
* [CSS-Tricks](https://css-tricks.com)
|
||||
|
||||
|
||||
|
@ -8,7 +8,7 @@ lang: es-es
|
||||
filename: groovy-es.html
|
||||
---
|
||||
|
||||
Groovy - Un lenguaje dinámico para la plataforma Java [Leer más aquí.](http://www.groovy-lang.org/)
|
||||
Groovy - Un lenguaje dinámico para la plataforma Java. [Leer más aquí](http://www.groovy-lang.org/).
|
||||
|
||||
```groovy
|
||||
/*
|
||||
@ -283,7 +283,7 @@ def clos = { print it }
|
||||
clos( "hi" )
|
||||
|
||||
/*
|
||||
Groovy puede memorizar los resultados de un Closure [1][2][3]
|
||||
Groovy puede memorizar los resultados de un Closure
|
||||
*/
|
||||
def cl = {a, b ->
|
||||
sleep(3000) // simula algún proceso que consume tiempo
|
||||
@ -422,12 +422,6 @@ assert sum(2,5) == 7
|
||||
|
||||
## Libros
|
||||
|
||||
* [Groovy Goodness] (https://leanpub.com/groovy-goodness-notebook)
|
||||
|
||||
* [Groovy in Action] (http://manning.com/koenig2/)
|
||||
|
||||
* [Programming Groovy 2: Dynamic Productivity for the Java Developer] (http://shop.oreilly.com/product/9781937785307.do)
|
||||
|
||||
[1] http://roshandawrani.wordpress.com/2010/10/18/groovy-new-feature-closures-can-now-memorize-their-results/
|
||||
[2] http://www.solutionsiq.com/resources/agileiq-blog/bid/72880/Programming-with-Groovy-Trampoline-and-Memoize
|
||||
[3] http://mrhaki.blogspot.mx/2011/05/groovy-goodness-cache-closure-results.html
|
||||
* [Groovy Goodness](https://leanpub.com/groovy-goodness-notebook)
|
||||
* [Groovy in Action](http://manning.com/koenig2/)
|
||||
* [Programming Groovy 2: Dynamic Productivity for the Java Developer](http://shop.oreilly.com/product/9781937785307.do)
|
||||
|
@ -143,7 +143,7 @@ logger("Tenemos una subrutina logger!");
|
||||
|
||||
#### Utilizando módulos Perl
|
||||
|
||||
Los módulos en Perl proveen de una gama de funciones que le pueden ayudar a evitar reinventar la rueda. Éstas se pueden descargar desde CPAN ( http://www.cpan.org/ ). Algunos de los módulos más populares ya están incluidos con la misma distribución de Perl.
|
||||
Los módulos en Perl proveen de una gama de funciones que le pueden ayudar a evitar reinventar la rueda. Éstas se pueden descargar desde [CPAN](http://www.cpan.org/). Algunos de los módulos más populares ya están incluidos con la misma distribución de Perl.
|
||||
|
||||
perlfaq contiene preguntas y respuestas relacionadas con muchas tareas comunes, y algunas veces provee sugerencias sobre buenos módulos de CPAN que puede usar.
|
||||
|
||||
|
@ -231,8 +231,9 @@ sns.lmplot("BirthY", "EstAge", data=hre);
|
||||
|
||||
Si quieres aprender más, obtén _Python for Data Analysis_ por Wes McKinney. Es un extraordinario recurso usado como referencia para escribir este tutorial.
|
||||
|
||||
También puedes encontrar gran cantidad de tutoriales interactivos de IPython en temas específicos a tus intereses, como Pilon de Cam Davidson <a href="http://camdavidsonpilon.github.io/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/" Title="Probabilistic Programming and Bayesian Methods for Hackers">Probabilistic Programming and Bayesian Methods for Hackers</a>.
|
||||
También puedes encontrar gran cantidad de tutoriales interactivos de IPython en temas específicos a tus intereses, como Pilon de Cam Davidson [Probabilistic Programming and Bayesian Methods for Hackers](http://camdavidsonpilon.github.io/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/).
|
||||
|
||||
Ver más módulos para investigar:
|
||||
- análisis de texto y procesamiento natural del lenguaje: nltk, http://www.nltk.org
|
||||
- análisis de redes sociales: igraph, http://igraph.org/python/
|
||||
|
||||
- análisis de texto y procesamiento natural del lenguaje: [nltk](http://www.nltk.org)
|
||||
- análisis de redes sociales: [igraph](http://igraph.org/python/)
|
||||
|
@ -20,7 +20,7 @@ Module Module1
|
||||
' Dicho sistema se explicará a medida que avancemos en este
|
||||
' tutorial; gradualmente entenderás lo que significa todo.
|
||||
Console.Title = ("Aprende X en Y minutos")
|
||||
Console.WriteLine("NAVEGACIÓN") 'Mostrar
|
||||
Console.WriteLine("NAVEGACIÓN") 'Mostrar
|
||||
Console.WriteLine("")
|
||||
Console.ForegroundColor = ConsoleColor.Green
|
||||
Console.WriteLine("1. Salida «Hola, mundo»")
|
||||
@ -42,7 +42,7 @@ Module Module1
|
||||
Case "2" 'Entrada «hola, mundo»
|
||||
Console.Clear()
|
||||
EntradaHolaMundo()
|
||||
Case "3" 'Calcular números enteros
|
||||
Case "3" 'Calcular números enteros
|
||||
Console.Clear()
|
||||
CalcularNumerosEnteros()
|
||||
Case "4" 'Calcular números decimales
|
||||
@ -77,7 +77,7 @@ Module Module1
|
||||
'Uno - He usado números para guiarme por el sistema de navegación anterior
|
||||
'cuando regrese posteriormente a implementarlo.
|
||||
|
||||
'Usamos subrutinas privadas para separar distintas secciones del programa.
|
||||
'Usamos subrutinas privadas para separar distintas secciones del programa.
|
||||
Private Sub SalidaHolaMundo()
|
||||
'Título de la aplicación de consola
|
||||
Console.Title = "Salida «Hola, mundo» | Aprende X en Y minutos"
|
||||
@ -212,7 +212,7 @@ Module Module1
|
||||
Console.Title = "Uso de bucles «For» | Aprende X en Y minutos"
|
||||
'Declarar Variable y desde qué número debe contar en Step -1,
|
||||
'Step -2, Step -3, etc.
|
||||
For i As Integer = 10 To 0 Step -1
|
||||
For i As Integer = 10 To 0 Step -1
|
||||
Console.WriteLine(i.ToString) 'Muestra el valor del contador
|
||||
Next i 'Calcular el valor nuevo
|
||||
Console.WriteLine("Iniciar") '¡¡Comencemos el programa, nene!!
|
||||
@ -278,6 +278,6 @@ End Module
|
||||
|
||||
Aprendí Visual Basic en la aplicación de consola. Esta me permitió entender los principios de la programación para, posteriormente, aprender otros lenguajes con facilidad.
|
||||
|
||||
He creado un <a href="http://www.vbbootcamp.co.uk/" Title="Tutorial de Visual Basic">tutorial de Visual Basic</a> más exhaustivo para quienes quieran saber más.
|
||||
He creado un [tutorial de Visual Basic](http://www.vbbootcamp.co.uk/) más exhaustivo para quienes quieran saber más.
|
||||
|
||||
Toda la sintaxis es válida. Copia el código y pégalo en el compilador de Visual Basic y ejecuta (F5) el programa.
|
||||
Toda la sintaxis es válida. Copia el código y pégalo en el compilador de Visual Basic y ejecuta (F5) el programa.
|
||||
|
@ -29,6 +29,7 @@ filename: LearnVim-fa.txt
|
||||
```
|
||||
vim <filename> # Open <filename> in vim
|
||||
```
|
||||
|
||||
<p dir="rtl">
|
||||
باز کردن help docs های `<topic>` اگر وجود داشته باشد
|
||||
</p>
|
||||
|
@ -255,14 +255,11 @@ endif
|
||||
|
||||
### En français
|
||||
|
||||
+ [Introduction à Makefile (developpez.com)]
|
||||
(http://gl.developpez.com/tutoriel/outil/makefile/),
|
||||
+ [Compilez sous GNU/Linux ! (openclassrooms)]
|
||||
(https://openclassrooms.com/courses/compilez-sous-gnu-linux).
|
||||
+ [Introduction à Makefile (developpez.com)](http://gl.developpez.com/tutoriel/outil/makefile/),
|
||||
+ [Compilez sous GNU/Linux ! (openclassrooms)](https://openclassrooms.com/courses/compilez-sous-gnu-linux).
|
||||
|
||||
### En anglais
|
||||
|
||||
+ [Documentation de GNU make](https://www.gnu.org/software/make/manual/),
|
||||
+ [Software carpentry tutorial](http://swcarpentry.github.io/make-novice/),
|
||||
+ Learn C the hard way [ex2](http://c.learncodethehardway.org/book/ex2.html)
|
||||
[ex28](http://c.learncodethehardway.org/book/ex28.html).
|
||||
+ Learn C the hard way [ex2](http://c.learncodethehardway.org/book/ex2.html) [ex28](http://c.learncodethehardway.org/book/ex28.html).
|
||||
|
@ -48,8 +48,8 @@ my %fruit_couleur = ("pomme", "rouge", "banane", "jaune");
|
||||
# Vous pouvez utiliser des espaces et l'opérateur "=>" pour les disposer plus joliment :
|
||||
|
||||
my %fruit_couleur = (
|
||||
pomme => "rouge",
|
||||
banane => "jaune"
|
||||
pomme => "rouge",
|
||||
banane => "jaune"
|
||||
);
|
||||
|
||||
# Les scalaires, tableaux et hashes sont plus amplement documentés dans le perldata
|
||||
@ -105,7 +105,7 @@ for my $element (@elements) {
|
||||
# de la plupart des fonctions pour en simplifier l'écriture.
|
||||
|
||||
# Dans l'exemple suivant, $_ prends successivement la valeur de
|
||||
# chaque élément de la liste.
|
||||
# chaque élément de la liste.
|
||||
|
||||
for (@elements) {
|
||||
print; # affiche le contenu de $_
|
||||
@ -163,11 +163,12 @@ logger("On a une fonction de logging!!");
|
||||
|
||||
#### Utiliser des modules Perl
|
||||
|
||||
Les modules Perl fournissent une palette de fonctionnalités vous évitant de réinventer la roue et peuvent être téléchargés depuis CPAN (http://www.cpan.org/). Un certain nombre de modules populaires sont inclus dans la distribution même de Perl.
|
||||
Les modules Perl fournissent une palette de fonctionnalités vous évitant de réinventer la roue et peuvent être téléchargés depuis [CPAN](http://www.cpan.org/). Un certain nombre de modules populaires sont inclus dans la distribution même de Perl.
|
||||
|
||||
Perlfaq contiens des questions et réponses liées aux tâches habituelles et propose souvent des suggestions quant aux bons modules à utiliser.
|
||||
|
||||
#### Pour en savoir plus
|
||||
|
||||
- [perl-tutorial](http://perl-tutorial.org/)
|
||||
- [Learn at www.perl.com](http://www.perl.org/learn.html)
|
||||
- [perldoc](http://perldoc.perl.org/)
|
||||
|
@ -12,7 +12,7 @@ Le langage Wolfram est utilisé dans les programmes suivants :
|
||||
* La ligne de commandes interactive noyau du Raspberry Pi, mais elle ne peut pas
|
||||
gérer des éléments graphiques.
|
||||
* _Mathematica_, un éditeur de texte riche spécialisé pour les mathématiques :
|
||||
appuyer sur `Shift + Entrée` dans une cellule de code crée un nouvelle cellule
|
||||
appuyer sur `Shift + Entrée` dans une cellule de code crée un nouvelle cellule
|
||||
contenant le résultat.
|
||||
* _Wolfram Wokbench_, une variante d'Eclipse spécialisée pour le langage
|
||||
Wolfram.
|
||||
@ -138,7 +138,7 @@ FoldList[Plus, 0, liste] (* {0, 1, 3, 6, 10}, variante de la fonction
|
||||
précédente qui donne aussi les résultats
|
||||
intermédiaires *)
|
||||
Append[liste, 5] (* {1, 2, 3, 4, 5}, liste n'est pas modifiée... *)
|
||||
Prepend[liste, 5] (* {5, 1, 2, 3, 4}, ... mais elle peut l'être en
|
||||
Prepend[liste, 5] (* {5, 1, 2, 3, 4}, ... mais elle peut l'être en
|
||||
écrivant "liste = " *)
|
||||
Join[liste, {3, 4}] (* {1, 2, 3, 4, 3, 4} *)
|
||||
liste[[2]] = 5 (* {1, 5, 3, 4}, ceci modifie bien la liste *)
|
||||
@ -163,5 +163,4 @@ Manipulate[y^2, {y, 0, 20}] (* Crée une interface graphique interactive qui
|
||||
|
||||
## Envie d'aller plus loin ?
|
||||
|
||||
* [Documentation du langage Wolfram (en anglais)]
|
||||
(http://reference.wolfram.com/language/)
|
||||
* [Documentation du langage Wolfram (en anglais)](http://reference.wolfram.com/language/)
|
||||
|
@ -6,7 +6,7 @@ contributors:
|
||||
filename: learngroovy.groovy
|
||||
---
|
||||
|
||||
Groovy - A dynamic language for the Java platform [Read more here.](http://www.groovy-lang.org/)
|
||||
[Groovy](http://www.groovy-lang.org/) is a dynamic language for the Java platform
|
||||
|
||||
```groovy
|
||||
/*
|
||||
@ -299,7 +299,7 @@ def clos = { print it }
|
||||
clos( "hi" )
|
||||
|
||||
/*
|
||||
Groovy can memoize closure results [1][2][3]
|
||||
Groovy can memoize closure results
|
||||
*/
|
||||
def cl = {a, b ->
|
||||
sleep(3000) // simulate some time consuming processing
|
||||
@ -438,12 +438,6 @@ Join a [Groovy user group](http://www.groovy-lang.org/usergroups.html)
|
||||
|
||||
## Books
|
||||
|
||||
* [Groovy Goodness] (https://leanpub.com/groovy-goodness-notebook)
|
||||
|
||||
* [Groovy in Action] (http://manning.com/koenig2/)
|
||||
|
||||
* [Programming Groovy 2: Dynamic Productivity for the Java Developer] (http://shop.oreilly.com/product/9781937785307.do)
|
||||
|
||||
[1] http://roshandawrani.wordpress.com/2010/10/18/groovy-new-feature-closures-can-now-memorize-their-results/
|
||||
[2] http://www.solutionsiq.com/resources/agileiq-blog/bid/72880/Programming-with-Groovy-Trampoline-and-Memoize
|
||||
[3] http://mrhaki.blogspot.mx/2011/05/groovy-goodness-cache-closure-results.html
|
||||
* [Groovy Goodness](https://leanpub.com/groovy-goodness-notebook)
|
||||
* [Groovy in Action](http://manning.com/koenig2/)
|
||||
* [Programming Groovy 2: Dynamic Productivity for the Java Developer](http://shop.oreilly.com/product/9781937785307.do)
|
||||
|
@ -198,12 +198,12 @@ $ r.js -o app.build.js
|
||||
* [उन्नत विन्यास](http://requirejs.org/docs/api.html#config)
|
||||
* [शिम विन्यास (गैर एएमडी मॉड्यूल लोडिंग)](http://requirejs.org/docs/api.html#config-shim)
|
||||
* [सीएसएस लदान और require.js साथ अनुकूलन](http://requirejs.org/docs/optimization.html#onecss)
|
||||
* [बनाता है के लिए almond.js का प्रयोग](Https://github.com/jrburke/almond)
|
||||
* [बनाता है के लिए almond.js का प्रयोग](https://github.com/jrburke/almond)
|
||||
|
||||
### अग्रिम पठन:
|
||||
|
||||
* [सरकारी कल्पना](https://github.com/amdjs/amdjs-api/wiki/AMD)
|
||||
* [क्यों एएमडी?](Http://requirejs.org/docs/whyamd.html)
|
||||
* [क्यों एएमडी?](http://requirejs.org/docs/whyamd.html)
|
||||
* [यूनिवर्सल मॉड्यूल परिभाषा](https://github.com/umdjs/umd)
|
||||
|
||||
### कार्यान्वयन:
|
||||
|
@ -26,8 +26,8 @@ http --offline https://api.example.com/posts
|
||||
|
||||
### URL shortcuts for `localhost`
|
||||
|
||||
HTTPie supports a curl-like shorthand for localhost. For instance, ":3000"
|
||||
expands to "http://localhost:3000". If the port is omitted, it assumes port 80.
|
||||
HTTPie supports a curl-like shorthand for localhost. For instance, `:3000`
|
||||
expands to `http://localhost:3000`. If the port is omitted, it assumes port 80.
|
||||
|
||||
```bash
|
||||
http :/users # http://localhost/users
|
||||
@ -48,7 +48,6 @@ http https://api.example.com/tags title="Tutorial" slug="tutorial" # POST a new
|
||||
|
||||
## Querystring Parameters
|
||||
|
||||
|
||||
If you're manually adding query string parameters in the terminal, try the
|
||||
`param==value` syntax. It avoids shell escaping for & separators and
|
||||
automatically URL-escapes special characters in parameter names and values.
|
||||
@ -116,5 +115,5 @@ http --follow GET https://example.com # Follow Redirects
|
||||
|
||||
## Further Reading
|
||||
|
||||
- [Official Documentation](https://httpie.io/docs/cli).
|
||||
- [GitHub](https://github.com/httpie).
|
||||
- [Official Documentation](https://httpie.io/docs/cli)
|
||||
- [GitHub](https://github.com/httpie)
|
||||
|
@ -10,7 +10,7 @@ lang: id-id
|
||||
---
|
||||
|
||||
CoffeeScript adalah bahasa sederhana yang diterjemahkan saat kompilasi ke dalam JavaScript,
|
||||
dan bukan diterjemahkan pada saat *runtime*.
|
||||
dan bukan diterjemahkan pada saat *runtime*.
|
||||
CoffeeScript mencoba agar kode JavaScript yang dihasilkan tetap mudah dibaca
|
||||
dan kompatibel dengan semua *runtime* JavaScript.
|
||||
|
||||
@ -102,5 +102,5 @@ makan sayuran for sayuran in sayur_sayuran when sayuran isnt 'kemangi'
|
||||
|
||||
## Referensi Tambahan
|
||||
|
||||
- [Smooth CoffeeScript (EN)] (http://autotelicum.github.io/Smooth-CoffeeScript/)
|
||||
- [CoffeeScript Ristretto (EN)] (https://leanpub.com/coffeescript-ristretto/read)
|
||||
- [Smooth CoffeeScript (EN)](http://autotelicum.github.io/Smooth-CoffeeScript/)
|
||||
- [CoffeeScript Ristretto (EN)](https://leanpub.com/coffeescript-ristretto/read)
|
||||
|
@ -11,32 +11,32 @@ lang: it-it
|
||||
|
||||
**Qt** è un framework ampiamente conosciuto per lo sviluppo di software multipiattaforma che può essere eseguito su varie piattaforme software e hardware con modifiche minime o nulle nel codice, pur avendo la potenza e la velocità delle applicazioni native. Sebbene **Qt** sia stato originariamente scritto in *C++*.
|
||||
|
||||
|
||||
Questo è un adattamento sull'introduzione di C ++ a QT di [Aleksey Kholovchuk] (https://github.com/vortexxx192
|
||||
), alcuni degli esempi di codice dovrebbero avere la stessa funzionalità
|
||||
che avrebbero se fossero fatte usando pyqt!
|
||||
Questo è un adattamento sull'introduzione di C ++ a QT di
|
||||
[Aleksey Kholovchuk](https://github.com/vortexxx192), alcuni
|
||||
degli esempi di codice dovrebbero avere la stessa
|
||||
funzionalità che avrebbero se fossero fatte usando pyqt!
|
||||
|
||||
```python
|
||||
import sys
|
||||
from PyQt4 import QtGui
|
||||
|
||||
def window():
|
||||
# Crea un oggetto applicazione
|
||||
# Crea un oggetto applicazione
|
||||
app = QtGui.QApplication(sys.argv)
|
||||
# Crea un widget in cui verrà inserita la nostra etichetta
|
||||
# Crea un widget in cui verrà inserita la nostra etichetta
|
||||
w = QtGui.QWidget()
|
||||
# Aggiungi un'etichetta al widget
|
||||
# Aggiungi un'etichetta al widget
|
||||
b = QtGui.QLabel(w)
|
||||
# Imposta del testo per l'etichetta
|
||||
# Imposta del testo per l'etichetta
|
||||
b.setText("Ciao Mondo!")
|
||||
# Fornisce informazioni su dimensioni e posizionamento
|
||||
# Fornisce informazioni su dimensioni e posizionamento
|
||||
w.setGeometry(100, 100, 200, 50)
|
||||
b.move(50, 20)
|
||||
# Dai alla nostra finestra un bel titolo
|
||||
# Dai alla nostra finestra un bel titolo
|
||||
w.setWindowTitle("PyQt")
|
||||
# Visualizza tutto
|
||||
# Visualizza tutto
|
||||
w.show()
|
||||
# Esegui ciò che abbiamo chiesto, una volta che tutto è stato configurato
|
||||
# Esegui ciò che abbiamo chiesto, una volta che tutto è stato configurato
|
||||
sys.exit(app.exec_())
|
||||
|
||||
if __name__ == '__main__':
|
||||
@ -60,7 +60,7 @@ def window():
|
||||
b.setText("Premimi")
|
||||
b.move(50, 50)
|
||||
# Indica a b di chiamare questa funzione quando si fa clic
|
||||
# notare la mancanza di "()" sulla chiamata di funzione
|
||||
# notare la mancanza di "()" sulla chiamata di funzione
|
||||
b.clicked.connect(showdialog)
|
||||
w.setWindowTitle("PyQt Dialog")
|
||||
w.show()
|
||||
|
@ -300,7 +300,7 @@ fn main() {
|
||||
*ref_var2 += 2; // '*' serve a puntare al binding var2, preso in presto mutevolmente
|
||||
|
||||
println!("{}", *ref_var2); // 6
|
||||
// var2 non compilerebbe. ref_var2 è di tipo &mut i32, e quindi
|
||||
// var2 non compilerebbe. ref_var2 è di tipo &mut i32, e quindi
|
||||
// immagazzina un riferimento a un i32, e non il valore stesso.
|
||||
// var2 = 2; // questo non compilerebbe, perché `var2` è stato preso in prestito
|
||||
}
|
||||
@ -312,7 +312,7 @@ C'è molto di più in Rust — questi sono solo i fondamenti di Rust, che servon
|
||||
le cose più importanti.
|
||||
|
||||
Purtroppo c'è pochissima documentazione in italiano, tra cui:
|
||||
(https://www.mozillaitalia.org/home/2015/05/30/primi-passi-con-rust/)
|
||||
[mozillaitalia.org/home/2015/05/30/primi-passi-con-rust/](https://www.mozillaitalia.org/home/2015/05/30/primi-passi-con-rust/)
|
||||
|
||||
Però ce n'è parecchia in inglese. Per saperne di più, leggi [The Rust Programming
|
||||
Language](http://doc.rust-lang.org/book/index.html) e tieni d'occhio l'area di interesse di Reddit (subreddit)
|
||||
|
@ -1012,45 +1012,32 @@ public class Lambdas {
|
||||
|
||||
The links provided here below are just to get an understanding of the topic, feel free to Google and find specific examples.
|
||||
|
||||
**Official Oracle Guides**:
|
||||
### Official Oracle Guides
|
||||
|
||||
* [Java Tutorial Trail from Sun / Oracle](https://docs.oracle.com/javase/tutorial/index.html)
|
||||
|
||||
* [Java Access level modifiers](https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html)
|
||||
|
||||
* [Object-Oriented Programming Concepts](https://docs.oracle.com/javase/tutorial/java/concepts/index.html):
|
||||
* [Inheritance](https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html)
|
||||
* [Polymorphism](https://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html)
|
||||
* [Abstraction](https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html)
|
||||
|
||||
* [Exceptions](https://docs.oracle.com/javase/tutorial/essential/exceptions/index.html)
|
||||
|
||||
* [Interfaces](https://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html)
|
||||
|
||||
* [Generics](https://docs.oracle.com/javase/tutorial/java/generics/index.html)
|
||||
|
||||
* [Java Code Conventions](https://www.oracle.com/technetwork/java/codeconvtoc-136057.html)
|
||||
|
||||
* New features in Java 8:
|
||||
* [Lambda expressions (functional programming)](https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html)
|
||||
* [Date and time API (java.time package)](http://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html)
|
||||
|
||||
**Online Practice and Tutorials**
|
||||
### Online Practice and Tutorials
|
||||
|
||||
* [Learneroo.com - Learn Java](http://www.learneroo.com)
|
||||
|
||||
* [Codingbat.com](http://codingbat.com/java)
|
||||
|
||||
* [Codewars - Java Katas](https://www.codewars.com/?language=java)
|
||||
|
||||
* [University of Helsinki - Object-Oriented programming with Java](http://moocfi.github.io/courses/2013/programming-part-1/)
|
||||
|
||||
**Books**:
|
||||
### Books
|
||||
|
||||
* [Head First Java](http://www.headfirstlabs.com/books/hfjava/)
|
||||
|
||||
* [Thinking in Java](https://www.amazon.com/Thinking-Java-4th-Bruce-Eckel/dp/0131872486/)
|
||||
|
||||
* [Objects First with Java](https://www.amazon.com/Objects-First-Java-Practical-Introduction/dp/0132492660)
|
||||
|
||||
* [Java The Complete Reference](https://www.amazon.com/gp/product/0071606300)
|
||||
|
@ -902,9 +902,9 @@ jq -n '
|
||||
# - `def f($a; $b): ...;` is a shorthand for: `def f(a; b): a as $a | b as $b | ...`
|
||||
```
|
||||
|
||||
|
||||
## Further Reading
|
||||
- https://stedolan.github.io/jq/manual/
|
||||
- https://github.com/stedolan/jq/wiki/jq-Language-Description
|
||||
- https://github.com/stedolan/jq/wiki/Cookbook
|
||||
- https://github.com/stedolan/jq/blob/master/src/builtin.jq
|
||||
|
||||
- [jq Manual](https://jqlang.github.io/jq/manual/)
|
||||
- [Language Description](https://github.com/jqlang/jq/wiki/jq-Language-Description)
|
||||
- [Cookbook](https://github.com/jqlang/jq/wiki/Cookbook)
|
||||
- [builtin.jq](https://github.com/jqlang/jq/blob/master/src/builtin.jq)
|
||||
|
@ -18,9 +18,10 @@ Failo plėtinys JSON failams yra „.json“, o MIME tipas yra „application/js
|
||||
|
||||
Dauguma programavimo kalbų palaiko JSON duomenų serializaciją (kodavimą) ir deserializaciją (dekodavimą) į natyviasias duomenų struktūras. Javascript turi visišką JSON teksto kaip duomenų manipuliavimo palaikymą.
|
||||
|
||||
Daugiau informacijos galima rasti http://www.json.org/
|
||||
Daugiau informacijos galima rasti [json.org](http://www.json.org/)
|
||||
|
||||
JSON yra pastatytas iš dviejų struktūrų:
|
||||
|
||||
* Vardų/reikšmių porų rinkinys. Daugomoje kalbų, tai yra realizuojama kaip objektas, įrašas, struktūra, žodynas, hash lentelė, sąrašas su raktais arba asociatyvusis masyvas.
|
||||
* Rūšiuotas reikšmių sąrašas. Daugumoje kalbų, toks sąrašas yra realizuojama kaip masyvas, vektorius, sąrašas arba seka.
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
---
|
||||
---
|
||||
language: M (MUMPS)
|
||||
contributors:
|
||||
- ["Fred Turkington", "http://z3ugma.github.io"]
|
||||
filename: LEARNM.m
|
||||
contributors:
|
||||
- ["Fred Turkington", "http://z3ugma.github.io"]
|
||||
filename: LEARNM.m
|
||||
---
|
||||
|
||||
M, or MUMPS (Massachusetts General Hospital Utility Multi-Programming System) is
|
||||
@ -22,7 +22,7 @@ to modern formats like JSON.
|
||||
|
||||
Originally designed in 1966 for the healthcare applications, M continues to be
|
||||
used widely by healthcare systems and financial institutions for high-throughput
|
||||
real-time applications.
|
||||
real-time applications.
|
||||
|
||||
### Example
|
||||
|
||||
@ -72,12 +72,12 @@ Commands are case insensitive, and have full form, and a shortened abbreviation,
|
||||
|
||||
#### Common Commands from all National and International Standards of M
|
||||
|
||||
#### Write (abbreviated as W)
|
||||
#### Write (abbreviated as W)
|
||||
|
||||
Print data to the current device.
|
||||
|
||||
```
|
||||
WRITE !,"hello world"
|
||||
```
|
||||
WRITE !,"hello world"
|
||||
```
|
||||
|
||||
Output Formatting characters:
|
||||
@ -89,7 +89,7 @@ Output Formatting characters:
|
||||
Multiple statements can be provided as additional arguments before the space separators to the next command:
|
||||
|
||||
```
|
||||
w !,"foo bar"," ","baz"
|
||||
w !,"foo bar"," ","baz"
|
||||
```
|
||||
|
||||
#### Read (abbreviated as R)
|
||||
@ -124,7 +124,7 @@ w !,centi,!,micro
|
||||
|
||||
Remove a variable from memory or remove a database entry from disk.
|
||||
A database node (global variable) is killed depending on the variable name being prefixed by the caret character (^).
|
||||
If it is not, then the local variable is removed from memory.
|
||||
If it is not, then the local variable is removed from memory.
|
||||
If KILLed, automatic garbage collection occurs.
|
||||
|
||||
```
|
||||
@ -134,9 +134,9 @@ k micro
|
||||
|
||||
### Globals and Arrays
|
||||
|
||||
In addition to local variables, M has persistent, shared variables that are the built-in database of M. They are stored to disk and called _globals_. Global names must start with a __caret__ (__^__).
|
||||
In addition to local variables, M has persistent, shared variables that are the built-in database of M. They are stored to disk and called _globals_. Global names must start with a __caret__ (__^__).
|
||||
|
||||
Any variable (local or global) can be an array with the assignment of a _subscript_. Arrays are sparse and do not have a predefined size. Only if data is stored will a value use memory. Arrays should be visualized like trees, where subscripts are branches and assigned values are leaves. Not all nodes in an array need to have a value.
|
||||
Any variable (local or global) can be an array with the assignment of a _subscript_. Arrays are sparse and do not have a predefined size. Only if data is stored will a value use memory. Arrays should be visualized like trees, where subscripts are branches and assigned values are leaves. Not all nodes in an array need to have a value.
|
||||
|
||||
```
|
||||
s ^cars=20
|
||||
@ -144,7 +144,7 @@ s ^cars("Tesla",1,"Name")="Model 3"
|
||||
s ^cars("Tesla",2,"Name")="Model X"
|
||||
s ^cars("Tesla",2,"Doors")=5
|
||||
|
||||
w !,^cars
|
||||
w !,^cars
|
||||
; 20
|
||||
w !,^cars("Tesla")
|
||||
; null value - there's no value assigned to this node but it has children
|
||||
@ -164,23 +164,23 @@ s ^TEMPS("11/12","1700",43)=""
|
||||
|
||||
### Operators
|
||||
|
||||
```jinja
|
||||
```
|
||||
; Assignment: =
|
||||
; Unary: + Convert a string value into a numeric value.
|
||||
; Arthmetic:
|
||||
; + addition
|
||||
; - subtraction
|
||||
; - subtraction
|
||||
; * multiplication
|
||||
; / floating-point division
|
||||
; \ integer division
|
||||
; # modulo
|
||||
; ** exponentiation
|
||||
; Logical:
|
||||
; Logical:
|
||||
; & and
|
||||
; ! or
|
||||
; ' not
|
||||
; Comparison:
|
||||
; = equal
|
||||
; = equal
|
||||
; '= not equal
|
||||
; > greater than
|
||||
; < less than
|
||||
@ -188,7 +188,7 @@ s ^TEMPS("11/12","1700",43)=""
|
||||
; '< not less / greater than or equal to
|
||||
; String operators:
|
||||
; _ concatenate
|
||||
; [ contains a contains b
|
||||
; [ contains a contains b
|
||||
; ]] sorts after a comes after b
|
||||
; '[ does not contain
|
||||
; ']] does not sort after
|
||||
@ -204,7 +204,7 @@ To change this order, just use parentheses to group expressions to be evaluated
|
||||
w 5+3*20
|
||||
;160
|
||||
;You probably wanted 65
|
||||
write 5+(3*20)
|
||||
write 5+(3*20)
|
||||
```
|
||||
|
||||
### Flow Control, Blocks, & Code Structure
|
||||
@ -215,17 +215,17 @@ A tag can accept parameters and return a value, this is a function. A function i
|
||||
|
||||
```
|
||||
; Execute the 'tag' function, which has two parameters, and write the result.
|
||||
w !,$$tag^routine(a,b)
|
||||
w !,$$tag^routine(a,b)
|
||||
```
|
||||
|
||||
M has an execution stack. When all levels of the stack have returned, the program ends. Levels are added to the stack with _do_ commands and removed with _quit_ commands.
|
||||
|
||||
#### Do (abbreviated as D)
|
||||
|
||||
With an argument: execute a block of code & add a level to the stack.
|
||||
With an argument: execute a block of code & add a level to the stack.
|
||||
|
||||
```
|
||||
d ^routine ;run a routine from the beginning.
|
||||
d ^routine ;run a routine from the beginning.
|
||||
; ;routines are identified by a caret.
|
||||
d tag ;run a tag in the current routine
|
||||
d tag^routine ;run a tag in different routine
|
||||
@ -235,11 +235,11 @@ Argumentless do: used to create blocks of code. The block is indented with a per
|
||||
|
||||
```
|
||||
set a=1
|
||||
if a=1 do
|
||||
if a=1 do
|
||||
. write !,a
|
||||
. read b
|
||||
. if b > 10 d
|
||||
. . w !, b
|
||||
. . w !, b
|
||||
w "hello"
|
||||
```
|
||||
|
||||
@ -258,7 +258,7 @@ Putting all this together, we can create a full example of an M routine:
|
||||
; RECTANGLE - a routine to deal with rectangle math
|
||||
q ; quit if a specific tag is not called
|
||||
|
||||
main
|
||||
main
|
||||
n length,width ; New length and width so any previous value doesn't persist
|
||||
w !,"Welcome to RECTANGLE. Enter the dimensions of your rectangle."
|
||||
r !,"Length? ",length,!,"Width? ",width
|
||||
@ -267,7 +267,7 @@ main
|
||||
w !,"Perimeter: ",per
|
||||
quit
|
||||
|
||||
area(length,width) ; This is a tag that accepts parameters.
|
||||
area(length,width) ; This is a tag that accepts parameters.
|
||||
; It's not a function since it quits with no value.
|
||||
w !, "Area: ",length*width
|
||||
q ; Quit: return to the previous level of the stack.
|
||||
@ -287,11 +287,11 @@ F(or) loops can follow a few different patterns:
|
||||
;f var=start:increment:stop
|
||||
|
||||
f i=0:5:25 w i," "
|
||||
;0 5 10 15 20 25
|
||||
;0 5 10 15 20 25
|
||||
|
||||
; Infinite loop with counter
|
||||
; The counter will keep incrementing forever. Use a conditional with Quit to get out of the loop.
|
||||
;f var=start:increment
|
||||
;f var=start:increment
|
||||
|
||||
f j=1:1 w j," " i j>1E3 q
|
||||
; Print 1-1000 separated by a space
|
||||
@ -299,7 +299,7 @@ f j=1:1 w j," " i j>1E3 q
|
||||
;Argumentless for - infinite loop. Use a conditional with Quit.
|
||||
; Also read as "forever" - f or for followed by two spaces.
|
||||
s var=""
|
||||
f s var=var_"%" w !,var i var="%%%%%%%%%%" q
|
||||
f s var=var_"%" w !,var i var="%%%%%%%%%%" q
|
||||
; %
|
||||
; %%
|
||||
; %%%
|
||||
@ -371,7 +371,7 @@ f s date=$ORDER(^TEMPS(date)) q:date="" d
|
||||
. f s time=$O(^TEMPS(date,time)) q:time="" d
|
||||
. . w !,"Time: ",time
|
||||
|
||||
; Build an index that sorts first by temperature -
|
||||
; Build an index that sorts first by temperature -
|
||||
; what dates and times had a given temperature?
|
||||
n date,time,temp
|
||||
f s date=$ORDER(^TEMPS(date)) q:date="" d
|
||||
@ -387,20 +387,21 @@ f s date=$ORDER(^TEMPS(date)) q:date="" d
|
||||
|
||||
## Further Reading
|
||||
|
||||
There's lots more to learn about M. A great short tutorial comes from the University of Northern Iowa and Professor Kevin O'Kane's [Introduction to the MUMPS Language][1] presentation. More about M using VistA is at
|
||||
There's lots more to learn about M. A great short tutorial comes from the University of Northern Iowa and Professor Kevin O'Kane's [Introduction to the MUMPS Language][1] presentation. More about M using VistA is at
|
||||
|
||||
Intersystems has some products which are a super-set of the M programming language.
|
||||
|
||||
* [Iris Description Page][5]
|
||||
* [Cache Description Page][6]
|
||||
|
||||
To install an M interpreter / database on your computer, try a [YottaDB Docker image][2].
|
||||
To install an M interpreter / database on your computer, try a [YottaDB Docker image][2].
|
||||
|
||||
YottaDB and its precursor, GT.M, have thorough documentation on all the language features including database transactions, locking, and replication:
|
||||
|
||||
* [YottaDB Programmer's Guide][3]
|
||||
* [GT.M Programmer's Guide][4]
|
||||
|
||||
[1]: https://www.cs.uni.edu/~okane/source/MUMPS-MDH/MumpsTutorial.pdf
|
||||
[1]: https://www.cs.uni.edu/~okane/source/MUMPS-MDH/MumpsTutorial.pdf
|
||||
[2]: https://yottadb.com/product/get-started/
|
||||
[3]: https://docs.yottadb.com/ProgrammersGuide/langfeat.html
|
||||
[4]: http://tinco.pair.com/bhaskar/gtm/doc/books/pg/UNIX_manual/index.html
|
||||
|
@ -36,9 +36,10 @@ Banyak bahasa aturcara mempunyai fungsi untuk menyirikan (mengekod) dan
|
||||
menyah-sirikan (men-dekod) data JSON kepada struktur data asal. Javascript
|
||||
mempunyai sokongon tersirat untuk memanipulasi teks JSON sebagai data.
|
||||
|
||||
Maklumat lebih lanjut boleh dijumpai di http://www.json.org/
|
||||
Maklumat lebih lanjut boleh dijumpai di [json.org](http://www.json.org/)
|
||||
|
||||
JSON dibina pada dua struktur:
|
||||
|
||||
* Sebuah koleksi pasangan nama/nilai. Di dalam pelbagai bahasa aturcara, ini
|
||||
direalisasikan sebagai objek, rekod, "struct", "dictionary", "hash table",
|
||||
senarai berkunci, atau "associative array".
|
||||
|
@ -1,4 +1,4 @@
|
||||
---
|
||||
---
|
||||
language: json
|
||||
filename: learnjson-no.json
|
||||
lang: no-nb
|
||||
@ -18,7 +18,7 @@ C-stil (`//`, `/* */`) kommentarer.
|
||||
```json
|
||||
{
|
||||
"nøkkel": "verdi",
|
||||
|
||||
|
||||
"nøkler": "må alltid være i doble anførselstegn",
|
||||
"tall": 0,
|
||||
"strings": "Hellø, wørld. Alt unicode er godkjent, også \"escaping\".",
|
||||
@ -48,7 +48,7 @@ C-stil (`//`, `/* */`) kommentarer.
|
||||
[0, 0, 0, 1]
|
||||
]
|
||||
],
|
||||
|
||||
|
||||
"Alternativ": {
|
||||
"Kommentar": "Sjekk ut ditta!"
|
||||
, "plassering av komma": "Sålenge den er før verdien er det gyldig"
|
||||
|
@ -112,6 +112,7 @@ use <filename> // Import modules and functions, but do not execute any comma
|
||||
```
|
||||
|
||||
## Further Reading
|
||||
* Official docs https://openscad.org/documentation.html
|
||||
* Cheat sheet https://openscad.org/cheatsheet/index.html
|
||||
* Vim bindings https://github.com/sirtaj/vim-openscad
|
||||
|
||||
* Official docs [openscad.org/documentation.html](https://openscad.org/documentation.html)
|
||||
* Cheat sheet [openscad.org/cheatsheet/index.html](https://openscad.org/cheatsheet/index.html)
|
||||
* Vim bindings [github.com/sirtaj/vim-openscad](https://github.com/sirtaj/vim-openscad)
|
||||
|
@ -21,8 +21,7 @@ lang: pl-pl
|
||||
|
||||
Java jest współbieżnym, opartym na klasach, obiektowym językiem programowania
|
||||
ogólnego zastosowania.
|
||||
[Tu znajdziesz więcej informacji po angielsku.]
|
||||
(https://docs.oracle.com/javase/tutorial/java/)
|
||||
[Tu znajdziesz więcej informacji po angielsku](https://docs.oracle.com/javase/tutorial/java/).
|
||||
|
||||
```java
|
||||
// Pojedyncze komentarze oznaczamy //
|
||||
@ -893,7 +892,7 @@ import java.security.SecureRandom;
|
||||
public class Lambdas {
|
||||
public static void main(String[] args) {
|
||||
// Składnia deklaracji lambdy:
|
||||
// <zero lub więcej parametrów> -> <ciało wyrażenia lub blok instrukcji>
|
||||
// <zero lub więcej parametrów> -> <ciało wyrażenia lub blok instrukcji>
|
||||
|
||||
// Poniżej w przykładzie użyjemy tablicy z hashowaniem.
|
||||
Map<String, String> planety = new HashMap<>();
|
||||
@ -978,49 +977,36 @@ public class Lambdas {
|
||||
|
||||
Linki zamieszczone poniżej służą pomocą w zrozumieniu wybranego tematu, w razie braku rozwiązania wyszukanie w Google zwykle służy pomocą
|
||||
|
||||
**Oficjalne poradniki Oracle po angielsku**:
|
||||
### Oficjalne poradniki Oracle po angielsku
|
||||
|
||||
* [Tutorial w Javie od Sun / Oracle](https://docs.oracle.com/javase/tutorial/index.html)
|
||||
|
||||
* [Modyfikacje poziomu dostępu w Java](https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html)
|
||||
|
||||
* [Koncepty programowania obiektowego](https://docs.oracle.com/javase/tutorial/java/concepts/index.html):
|
||||
* [Dziedziczenie](https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html)
|
||||
* [Polimorfizm](https://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html)
|
||||
* [Abstrakcja](https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html)
|
||||
|
||||
* [Wyjątki](https://docs.oracle.com/javase/tutorial/essential/exceptions/index.html)
|
||||
|
||||
* [Interfejsy](https://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html)
|
||||
|
||||
* [Uogólnianie](https://docs.oracle.com/javase/tutorial/java/generics/index.html)
|
||||
|
||||
* [Konwencja kodu Java](https://www.oracle.com/technetwork/java/codeconvtoc-136057.html)
|
||||
|
||||
* Nowości z Java 8:
|
||||
* [Funkcje Lambda (programowanie funkcyjne)](https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html)
|
||||
* [Data y czas API (java.time package)](http://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html)
|
||||
|
||||
**Kursy po polsku**
|
||||
### Kursy po polsku
|
||||
|
||||
* [PJWSTK - Podstawy programowania w języku Java](http://edu.pjwstk.edu.pl/wyklady/ppj/scb/)
|
||||
|
||||
* [PJWSTK - Programowanie obiektowe w języku Java](http://edu.pjwstk.edu.pl/wyklady/poj/scb/)
|
||||
|
||||
**Tutoriale i ćwiczenia online po angielsku**
|
||||
### Tutoriale i ćwiczenia online po angielsku
|
||||
|
||||
* [Learneroo.com - Learn Java](http://www.learneroo.com)
|
||||
|
||||
* [Codingbat.com](http://codingbat.com/java)
|
||||
|
||||
* [Codewars - Java Katas](https://www.codewars.com/?language=java)
|
||||
|
||||
**Książki po angielsku**:
|
||||
### Książki po angielsku
|
||||
|
||||
* [Head First Java](http://www.headfirstlabs.com/books/hfjava/)
|
||||
|
||||
* [Thinking in Java](https://www.amazon.com/Thinking-Java-4th-Bruce-Eckel/dp/0131872486/)
|
||||
|
||||
* [Objects First with Java](https://www.amazon.com/Objects-First-Java-Practical-Introduction/dp/0132492660)
|
||||
|
||||
* [Java The Complete Reference](https://www.amazon.com/gp/product/0071606300)
|
||||
|
@ -639,12 +639,10 @@ typedef void (*minha_função_type)(char *);
|
||||
Este é *o* livro sobre C, escrito pelos criadores da linguagem. Mas cuidado - ele é antigo e contém alguns erros (bem,
|
||||
ideias que não são mais consideradas boas) ou práticas ultrapassadas.
|
||||
|
||||
Outra boa referência é [Learn C the hard way](http://learncodethehardway.org/c/).
|
||||
|
||||
Se você tem uma pergunta, leia [compl.lang.c Frequently Asked Questions](http://c-faq.com).
|
||||
|
||||
É importante usar espaços e indentação adequadamente e ser consistente com seu estilo de código em geral.
|
||||
Código legível é melhor que código 'esperto' e rápido. Para adotar um estilo de código bom e sensato, veja
|
||||
[Linux kernel coding style](https://www.kernel.org/doc/Documentation/CodingStyle).
|
||||
|
||||
[1] http://stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member
|
||||
[1] [stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member](https://stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member)
|
||||
|
@ -9,13 +9,12 @@ translators:
|
||||
lang: pt-br
|
||||
---
|
||||
|
||||
Clojure é uma linguagem da família do Lisp desenvolvida para a JVM (máquina virtual Java). Possui uma ênfase muito mais forte em [programação funcional] (https://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_funcional) pura do que Common Lisp, mas inclui diversos recursos [STM](https://en.wikipedia.org/wiki/Software_transactional_memory) para lidar com estado e mutabilidade, caso isso seja necessário.
|
||||
Clojure é uma linguagem da família do Lisp desenvolvida para a JVM (máquina virtual Java). Possui uma ênfase muito mais forte em [programação funcional](https://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_funcional) pura do que Common Lisp, mas inclui diversos recursos [STM](https://en.wikipedia.org/wiki/Software_transactional_memory) para lidar com estado e mutabilidade, caso isso seja necessário.
|
||||
|
||||
Essa combinação permite gerenciar processamento concorrente de maneira muito simples - frequentemente, de modo automático.
|
||||
|
||||
(Sua versão de clojure precisa ser pelo menos 1.2)
|
||||
|
||||
|
||||
```clojure
|
||||
; Comentários começam por ponto e vírgula
|
||||
|
||||
@ -239,7 +238,7 @@ xis ; => :x
|
||||
|
||||
; É possível, inclusive, criar apelidos a nomes que já existem:
|
||||
(def somar! soma)
|
||||
(somar! 41 1) ; => 42
|
||||
(somar! 41 1) ; => 42
|
||||
|
||||
; Uma forma rápida de criar funções é por meio de funções anônimas. Elas são ótimas
|
||||
; para manipulação de coleções e seqs, já que podem ser passadas para map, filter
|
||||
@ -280,7 +279,7 @@ mapa-keywords ; => {:a 1, :c 3, :b 2}
|
||||
(mapa-strings "a") ; => 1
|
||||
(mapa-keywords :a) ; => 1
|
||||
|
||||
; Se a chave buscada for uma keyword, ela também pode ser usada como função para recuperar
|
||||
; Se a chave buscada for uma keyword, ela também pode ser usada como função para recuperar
|
||||
; valores. Note que isso não funciona com strings.
|
||||
(:b mapa-keywords) ; => 2
|
||||
("b" mapa-strings) ; => java.lang.String cannot be cast to clojure.lang.IFn
|
||||
@ -357,7 +356,7 @@ meu-conjunto ; => #{1 3 2}
|
||||
(if false "a" "b") ; => "b"
|
||||
|
||||
; Opcionalmente você pode não passar o último argumento, mas se a condição for falsa
|
||||
; o if vai retornar nil.
|
||||
; o if vai retornar nil.
|
||||
(if false "a") ; => nil
|
||||
|
||||
; A forma if somente aceita um comando para ser executado em cada caso. Se você
|
||||
@ -506,13 +505,13 @@ meu-conjunto ; => #{1 3 2}
|
||||
; e ele criará um objeto que é seguro de atualizar:
|
||||
(def atom-mapa (atom {}))
|
||||
|
||||
; Para acessar o valor de um atom, você pode usar a função deref ou o operador @:
|
||||
; Para acessar o valor de um atom, você pode usar a função deref ou o operador @:
|
||||
@atom-mapa ; => {}
|
||||
(deref atom-mapa) ; => {}
|
||||
|
||||
; Para mudar o valor de um atom, você deve usar a função swap!
|
||||
; O que ela faz é chamar a função passada usando o atom como seu primeiro argumento. Com
|
||||
; isso, ela altera o valor do atom de maneira segura.
|
||||
; isso, ela altera o valor do atom de maneira segura.
|
||||
(swap! atom-mapa assoc :a 1) ; Atribui a atom-mapa o resultado de (assoc {} :a 1)
|
||||
(swap! atom-mapa assoc :b 2) ; Atribui a atom-mapa o resultado de (assoc {:a 1} :b 2)
|
||||
|
||||
@ -553,16 +552,12 @@ Caso queira aprender mais:
|
||||
|
||||
* clojure.org tem vários artigos:
|
||||
[http://clojure.org/](http://clojure.org/)
|
||||
|
||||
* Brave Clojure possui um e-book que explora em profundidade diversos recursos de clojure, incluindo ótimos exemplos:
|
||||
[https://www.braveclojure.com/](https://www.braveclojure.com/)
|
||||
|
||||
* clojuredocs.org tem documentação com exemplos para quase todas as funções principais (pertecentes ao core):
|
||||
[http://clojuredocs.org/quickref/Clojure%20Core](http://clojuredocs.org/quickref/Clojure%20Core)
|
||||
|
||||
* 4clojure possui alguns problemas e desafios interessantes para quem quiser treinar clojure ou programação funcional:
|
||||
[https://4clojure.oxal.org/](https://4clojure.oxal.org/)
|
||||
|
||||
* clojure-doc.org tem um bom número de artigos para iniciantes:
|
||||
[http://clojure-doc.org/](http://clojure-doc.org/)
|
||||
|
||||
|
@ -9,7 +9,7 @@ translators:
|
||||
lang: pt-br
|
||||
---
|
||||
|
||||
O Emacs começou sua vida como (https://www.gnu.org/software/emacs/emacs-paper.html) e cresceu
|
||||
O Emacs começou sua vida como [gnu.org/software/emacs/emacs-paper.html](https://www.gnu.org/software/emacs/emacs-paper.html) e cresceu
|
||||
ao longo dos anos em um ecossistema completo. Muitas tarefas, geralmente
|
||||
relegado a um conjunto diversificado de ferramentas pode ser realizado de dentro
|
||||
Emacs em uma interface consistente e familiar. Exemplos incluem
|
||||
@ -32,25 +32,15 @@ Aqui, discuto alguns conceitos e terminologia básicos do Emacs que podem ser
|
||||
confusos para os recém-chegados (especialmente para as pessoas acostumadas à terminologia do Vim):
|
||||
|
||||
- O texto que o Emacs está editando é conhecido como **buffer**
|
||||
|
||||
- Um buffer não corresponde necessariamente a um arquivo real no disco. Pode ser apenas texto na memória.
|
||||
|
||||
- Quando um buffer corresponde a um arquivo no disco, dizemos que o buffer está **visitando** esse arquivo.
|
||||
|
||||
- O Emacs normalmente possui muitos buffers abertos ao mesmo tempo.
|
||||
|
||||
- A exibição do Emacs pode ser dividida em diferentes **windows**.
|
||||
|
||||
- Uma janela do sistema operacional para o Emacs é chamada de **frame**. Assim, quando o manual do Emacs fala sobre a abertura de um novo frame, esse essencialmente significa abrir uma nova janela do SO contendo uma (outra) instância do Emacs.
|
||||
|
||||
- Os conceitos convencionalmente conhecidos como recortar e colar são referido como **killing** e **yanking**, respectivamente no Emacs.
|
||||
|
||||
- A posição atual do cursor é chamada de **point** no Emacs. Tecnicamente, **point** é definido como a posição imediatamente antes do caractere onde o cursor está atualmente.
|
||||
|
||||
- Finalmente, cada buffer pode ter vários **modes** associados: o **major mode** e possivelmente vários **minor modes**.
|
||||
|
||||
- O **major mode** define o principal comportamento do Emacs no buffer atualmente selecionado. Isso pode ser pensado como o tipo de arquivo. Por exemplo, se você estiver editando um arquivo Python, os principais modes é (por padrão) `python-mode`, que faz com que o Emacs destaque a sintaxe Python e idente automaticamente seus blocos de código conforme exigido sintaticamente pelo seu código Python.
|
||||
|
||||
- **Minor modes** definem mudanças sutis no comportamento e várias alterações menores Os modos podem estar ativos ao mesmo tempo no mesmo buffer. Um exemplo menor modo é o modo flyspell, que destaca automaticamente os erros de ortografia no seu buffer.
|
||||
|
||||
# Recursos adicionais
|
||||
|
@ -11,11 +11,11 @@ translators:
|
||||
- ["Nuno Antunes", "https://github.com/ntns"]
|
||||
---
|
||||
|
||||
A linguagem Go foi criada a partir da necessidade de ver trabalho feito. Não
|
||||
A linguagem Go foi criada a partir da necessidade de ver trabalho feito. Não
|
||||
é a última moda em ciências da computação, mas é a mais recente e mais rápida
|
||||
forma de resolver os problemas do mundo real.
|
||||
|
||||
Tem conceitos familiares de linguagens imperativas com tipagem estática. É
|
||||
Tem conceitos familiares de linguagens imperativas com tipagem estática. É
|
||||
rápida para compilar e rápida para executar, acrescentando mecanismos de concorrência
|
||||
fáceis de entender para tirar partido dos CPUs multi-core de hoje em dia, e tem
|
||||
recursos para ajudar com a programação em larga escala.
|
||||
@ -57,7 +57,7 @@ func beyondHello() {
|
||||
// Declarações "curtas" usam := para inferir o tipo, declarar e atribuir.
|
||||
y := 4
|
||||
sum, prod := learnMultiple(x, y) // a função retorna dois valores
|
||||
fmt.Println("soma:", sum, "produto:", prod)
|
||||
fmt.Println("soma:", sum, "produto:", prod)
|
||||
learnTypes() // continuar a aprender!
|
||||
}
|
||||
|
||||
@ -69,9 +69,9 @@ func learnMultiple(x, y int) (sum, prod int) {
|
||||
// Alguns tipos e literais básicos.
|
||||
func learnTypes() {
|
||||
// Declarações "curtas" geralmente servem para o que pretendemos.
|
||||
s := "Aprender Go!" // tipo string
|
||||
s := "Aprender Go!" // tipo string
|
||||
|
||||
s2 := `Uma string em "bruto"
|
||||
s2 := `Uma string em "bruto"
|
||||
pode incluir quebras de linha.` // mesmo tipo string
|
||||
|
||||
// literal não-ASCII. A linguagem Go utiliza de raiz a codificação UTF-8.
|
||||
@ -87,7 +87,7 @@ pode incluir quebras de linha.` // mesmo tipo string
|
||||
// Sintaxe de conversão de tipo, com declaração "curta".
|
||||
n := byte('\n') // byte é um alias para uint8
|
||||
|
||||
// Os arrays têm tamanho fixo e definido antes da compilação.
|
||||
// Os arrays têm tamanho fixo e definido antes da compilação.
|
||||
var a4 [4]int // um array de 4 ints, inicializado com ZEROS
|
||||
a3 := [...]int{3, 1, 5} // um array de 3 ints, inicializado como mostrado
|
||||
|
||||
@ -112,10 +112,10 @@ pode incluir quebras de linha.` // mesmo tipo string
|
||||
// Enviar para o stdout conta como utilização de uma variável.
|
||||
fmt.Println(s, c, a4, s3, d2, m)
|
||||
|
||||
learnFlowControl()
|
||||
learnFlowControl()
|
||||
}
|
||||
|
||||
// A linguagem Go é totalmente garbage collected. Tem apontadores mas não
|
||||
// A linguagem Go é totalmente garbage collected. Tem apontadores mas não
|
||||
// permite que os apontadores sejam manipulados com aritmética. Pode-se cometer
|
||||
// um erro com um apontador nulo, mas não por incrementar um apontador.
|
||||
func learnMemory() (p, q *int) {
|
||||
@ -174,7 +174,7 @@ func learnFlowControl() {
|
||||
return x > 100 // referencia x, declarado acima da instrução switch.
|
||||
}
|
||||
fmt.Println("xBig:", xBig()) // true (1e6 é o último valor de x)
|
||||
x /= 1e5 // agora temos x == 10
|
||||
x /= 1e5 // agora temos x == 10
|
||||
fmt.Println("xBig:", xBig()) // false
|
||||
|
||||
// Quando for mesmo necessário, pode usar o velho goto.
|
||||
@ -194,7 +194,7 @@ type pair struct {
|
||||
x, y int
|
||||
}
|
||||
|
||||
// Define um método para o tipo pair. O tipo pair implementa agora a
|
||||
// Define um método para o tipo pair. O tipo pair implementa agora a
|
||||
// interface Stringer.
|
||||
func (p pair) String() string { // p é chamado de "receptor"
|
||||
// Sprintf é outra função pública no pacote fmt.
|
||||
@ -262,7 +262,7 @@ func learnConcurrency() {
|
||||
go func() { c <- 84 }() // inicia uma goroutine para enviar um valor
|
||||
go func() { cs <- "palavroso" }() // outra vez, para o channel cs desta vez
|
||||
// A instrução select tem uma sintaxe semelhante à instrução switch mas
|
||||
// cada caso envolve uma operação com channels. Esta instrução seleciona,
|
||||
// cada caso envolve uma operação com channels. Esta instrução seleciona,
|
||||
// de forma aleatória, um caso que esteja pronto para comunicar.
|
||||
select {
|
||||
case i := <-c: // o valor recebido pode ser atribuído a uma variável
|
||||
@ -301,11 +301,11 @@ Lá é possível seguir o tutorial, experimentar de forma iterativa, e ler muito
|
||||
A própria especificação da linguagem é altamente recomendada. É fácil de ler e
|
||||
incrivelmente curta (em relação ao que é habitual hoje em dia).
|
||||
|
||||
Na lista de leitura para os aprendizes de Go deve constar o [código fonte da
|
||||
Na lista de leitura para os aprendizes de Go deve constar o [código fonte da
|
||||
biblioteca padrão](https://go.dev/src/). Exaustivamente documentado, é
|
||||
a melhor demonstração de código fácil de ler e de perceber, do estilo Go, e da
|
||||
sua escrita idiomática. Ou então clique no nome de uma função na [documentação]
|
||||
(https://go.dev/pkg/) e veja o código fonte aparecer!
|
||||
sua escrita idiomática. Ou então clique no nome de uma função na
|
||||
[documentação](https://go.dev/pkg/) e veja o código fonte aparecer!
|
||||
|
||||
Outra ótima fonte para aprender Go é o [Go by example](https://gobyexample.com/).
|
||||
Apesar de ser em inglês, é possível recodificar os exemplos para aprender sobre
|
||||
|
@ -10,7 +10,7 @@ translators:
|
||||
lang: pt-br
|
||||
---
|
||||
|
||||
Groovy - Uma linguagem dinâmica para a plataforma Java. [Leia mais aqui.](http://www.groovy-lang.org/)
|
||||
Groovy - Uma linguagem dinâmica para a plataforma Java. [Leia mais aqui](http://www.groovy-lang.org/).
|
||||
|
||||
```groovy
|
||||
/*
|
||||
@ -289,7 +289,7 @@ def clos = { print it }
|
||||
clos( "oi" )
|
||||
|
||||
/*
|
||||
Groovy pode memorizar resultados de closures [1][2][3]
|
||||
Groovy pode memorizar resultados de closures
|
||||
*/
|
||||
def cl = {a, b ->
|
||||
sleep(3000) // simula processamento
|
||||
@ -317,7 +317,7 @@ chamaClosure(3, 4)
|
||||
/*
|
||||
Expando
|
||||
|
||||
A classe Expando é um bean dinâmico que permite adicionar propriedades e
|
||||
A classe Expando é um bean dinâmico que permite adicionar propriedades e
|
||||
closures como métodos a uma instância desta classe
|
||||
|
||||
http://mrhaki.blogspot.mx/2009/10/groovy-goodness-expando-as-dynamic-bean.html
|
||||
@ -429,15 +429,6 @@ Junte-se a um [grupo de usuários Groovy](http://www.groovy-lang.org/usergroups.
|
||||
|
||||
## Livro
|
||||
|
||||
* [Groovy Goodness] (https://leanpub.com/groovy-goodness-notebook)
|
||||
|
||||
* [Groovy in Action] (http://manning.com/koenig2/)
|
||||
|
||||
* [Programming Groovy 2: Dynamic Productivity for the Java Developer] (http://shop.oreilly.com/product/9781937785307.do)
|
||||
|
||||
[1] http://roshandawrani.wordpress.com/2010/10/18/groovy-new-feature-closures-can-now-memorize-their-results/
|
||||
[2] http://www.solutionsiq.com/resources/agileiq-blog/bid/72880/Programming-with-Groovy-Trampoline-and-Memoize
|
||||
[3] http://mrhaki.blogspot.mx/2011/05/groovy-goodness-cache-closure-results.html
|
||||
|
||||
|
||||
|
||||
* [Groovy Goodness](https://leanpub.com/groovy-goodness-notebook)
|
||||
* [Groovy in Action](http://manning.com/koenig2/)
|
||||
* [Programming Groovy 2: Dynamic Productivity for the Java Developer](http://shop.oreilly.com/product/9781937785307.do)
|
||||
|
@ -29,8 +29,8 @@ http --offline https://api.example.com/posts
|
||||
|
||||
### Encurtando URLs `localhost`
|
||||
|
||||
HTTPie fornece suporte a atalhos para o localhost, similares aos do `curl`. Por exemplo, ":3000"
|
||||
expande para "http://localhost:3000". Se a porta for omitida, o padrão será a porta 80.
|
||||
HTTPie fornece suporte a atalhos para o localhost, similares aos do `curl`. Por exemplo, `:3000`
|
||||
expande para `http://localhost:3000`. Se a porta for omitida, o padrão será a porta 80.
|
||||
|
||||
```bash
|
||||
http :/users # http://localhost/users
|
||||
@ -118,5 +118,5 @@ http --follow GET https://example.com # Segue redirecionamentos
|
||||
|
||||
## Leitura Adicional
|
||||
|
||||
- [Documentação Oficial](https://httpie.io/docs/cli).
|
||||
- [GitHub](https://github.com/httpie).
|
||||
- [Documentação Oficial](https://httpie.io/docs/cli)
|
||||
- [GitHub](https://github.com/httpie)
|
||||
|
@ -630,28 +630,21 @@ Os links fornecidos aqui abaixo são apenas para ter uma compreensão do tema, u
|
||||
Outros tópicos para pesquisar:
|
||||
|
||||
* [Tutorial Java para Sun Trail / Oracle](http://docs.oracle.com/javase/tutorial/index.html)
|
||||
|
||||
* [Modificadores de acesso do Java](http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html)
|
||||
|
||||
* [Coceitos de Programação Orientada à Objetos](http://docs.oracle.com/javase/tutorial/java/concepts/index.html):
|
||||
* [Herança](http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html)
|
||||
* [Polimorfismo](http://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html)
|
||||
* [Abstração](http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html)
|
||||
|
||||
* [Exceções](http://docs.oracle.com/javase/tutorial/essential/exceptions/index.html)
|
||||
|
||||
* [Interfaces](http://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html)
|
||||
|
||||
* [Tipos Genéricos](http://docs.oracle.com/javase/tutorial/java/generics/index.html)
|
||||
|
||||
* [Conversões de código Java](http://www.oracle.com/technetwork/java/codeconv-138413.html)
|
||||
|
||||
Livros:
|
||||
|
||||
* [Use a cabeça, Java] (http://www.headfirstlabs.com/books/hfjava/)
|
||||
* [Use a cabeça, Java](http://www.headfirstlabs.com/books/hfjava/)
|
||||
|
||||
Apostila:
|
||||
|
||||
* [Java e Orientação a Objetos] (http://www.caelum.com.br/apostila-java-orientacao-objetos/)
|
||||
|
||||
* [Java para Desenvolvimento Web] (https://www.caelum.com.br/apostila-java-web/)
|
||||
* [Java e Orientação a Objetos](http://www.caelum.com.br/apostila-java-orientacao-objetos/)
|
||||
* [Java para Desenvolvimento Web](https://www.caelum.com.br/apostila-java-web/)
|
||||
|
@ -13,7 +13,7 @@ filename: learnjson-pt.json
|
||||
Como JSON é um formato de intercâmbio de dados, este será, muito provavelmente, o
|
||||
"Learn X in Y minutes" mais simples existente.
|
||||
|
||||
JSON na sua forma mais pura não tem comentários, mas a maioria dos analisadores
|
||||
JSON na sua forma mais pura não tem comentários, mas a maioria dos analisadores
|
||||
aceitarão comentários no estilo C (//, /\* \*/). No entanto estes devem ser evitados para otimizar a compatibilidade.
|
||||
|
||||
Um valor JSON pode ser um número, uma string, um array, um objeto, um booleano (true, false) ou null.
|
||||
@ -22,12 +22,12 @@ Os browsers suportados são: Firefox 3.5+, Internet Explorer 8.0+, Chrome 1.0+,
|
||||
|
||||
A extensão dos ficheiros JSON é “.json” e o tipo de mídia de Internet (MIME) é “application/json”.
|
||||
|
||||
Mais informação em: http://www.json.org/
|
||||
Mais informação em: [json.org](http://www.json.org/)
|
||||
|
||||
```json
|
||||
{
|
||||
"chave": "valor",
|
||||
|
||||
|
||||
"chaves": "deve ser sempre entre aspas (junto ou separado)",
|
||||
"números": 0,
|
||||
"strings": "Olá, mundo. Todo o padrão UNICODE é permitido, junto com \"escapando\".",
|
||||
|
@ -153,7 +153,7 @@ logger("Nós temos uma subrotina de log!");
|
||||
#### Usando módulos Perl
|
||||
|
||||
Módulos Perl provê uma lista de recursos para lhe ajudar a evitar redesenhar
|
||||
a roda, e tudo isso pode ser baixado do CPAN (http://www.cpan.org/). Um número
|
||||
a roda, e tudo isso pode ser baixado do [CPAN](http://www.cpan.org/). Um número
|
||||
de módulos populares podem ser incluídos com a própria distribuição do Perl.
|
||||
|
||||
perlfaq contém questões e respostas relacionadas a muitas tarefas comuns, e frequentemente provê sugestões para um bom números de módulos CPAN.
|
||||
|
@ -24,8 +24,7 @@ php composer.phar about
|
||||
curl -sS https://getcomposer.org/installer | php -- --install-dir=~/bin --filename=composer
|
||||
```
|
||||
|
||||
Usuários Windows devem seguir as Instruções de instalação para Windows:
|
||||
https://getcomposer.org/doc/00-intro.md#installation-windows (EN)
|
||||
Usuários Windows devem seguir as [Instruções de instalação para Windows](https://getcomposer.org/doc/00-intro.md#installation-windows) (EN)
|
||||
|
||||
## Confirmando a instalação
|
||||
|
||||
|
@ -16,10 +16,10 @@ Stata, SAS, SPSS ou MATLAB.
|
||||
```python
|
||||
# 0. Preparando-se ====
|
||||
|
||||
""" Para começar, instale o seguinte : jupyther, numpy, scipy, pandas,
|
||||
""" Para começar, instale o seguinte : jupyther, numpy, scipy, pandas,
|
||||
matplotlib, seaborn, requests.
|
||||
Certifique-se de executar este tutorial utilizando o Jupyther notebook para
|
||||
que você utilize os gráficos embarcados e ter uma fácil consulta à
|
||||
que você utilize os gráficos embarcados e ter uma fácil consulta à
|
||||
documentação.
|
||||
O comando para abrir é simplesmente '`jupyter notebook`, quando abrir então
|
||||
clique em 'New -> Python'.
|
||||
@ -29,7 +29,7 @@ Stata, SAS, SPSS ou MATLAB.
|
||||
|
||||
""" A única razão das pessoas optarem por Python no lugar de R é que pretendem
|
||||
interagir com o ambiente web, copiando páginas diretamente ou solicitando
|
||||
dados utilizando uma API. Você pode fazer estas coisas em R, mas no
|
||||
dados utilizando uma API. Você pode fazer estas coisas em R, mas no
|
||||
contexto de um projeto já usando Python, há uma vantagem em se ater uma
|
||||
linguágem única.
|
||||
"""
|
||||
@ -75,7 +75,7 @@ pets
|
||||
# 1 vesuvius 6 23 fish
|
||||
# 2 rex 5 34 dog
|
||||
|
||||
""" Usuários R: observe que o Python, como a maioria das linguagens de programação
|
||||
""" Usuários R: observe que o Python, como a maioria das linguagens de programação
|
||||
influenciada pelo C, a indexação começa de 0. Em R, começa a indexar em 1
|
||||
devido à influência do Fortran.
|
||||
"""
|
||||
@ -99,7 +99,7 @@ pets.age[0:2]
|
||||
sum(pets.age) * 2 # 28
|
||||
max(pets.weight) - min(pets.weight) # 20
|
||||
|
||||
""" Se você está fazendo alguma álgebra linear séria e processamento de
|
||||
""" Se você está fazendo alguma álgebra linear séria e processamento de
|
||||
números você pode desejar apenas arrays, não DataFrames. DataFrames são
|
||||
ideais para combinar colunas de diferentes tipos de dados.
|
||||
"""
|
||||
@ -238,8 +238,9 @@ sns.lmplot("BirthY", "EstAge", data=hre)
|
||||
|
||||
Se você quiser saber mais, obtenha o Python para análise de dados de Wes McKinney. É um excelente recurso e usei-o como referência ao escrever este tutorial.
|
||||
|
||||
Você também pode encontrar muitos tutoriais interativos de IPython sobre assuntos específicos de seus interesses, como Cam Davidson-Pilon's <a href="http://camdavidsonpilon.github.io/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/" Title="Programação Probabilística e Métodos Bayesianos para Hackers">Programação Probabilística e Métodos Bayesianos para Hackers</a>.
|
||||
Você também pode encontrar muitos tutoriais interativos de IPython sobre assuntos específicos de seus interesses, como Cam Davidson-Pilon's [Programação Probabilística e Métodos Bayesianos para Hackers](http://camdavidsonpilon.github.io/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/).
|
||||
|
||||
Mais alguns módulos para pesquisar:
|
||||
- análise de texto e processamento de linguagem natural: nltk, http://www.nltk.org
|
||||
- análise de rede social: igraph, http://igraph.org/python/
|
||||
|
||||
- análise de texto e processamento de linguagem natural: [nltk](http://www.nltk.org)
|
||||
- análise de rede social: [igraph](http://igraph.org/python/)
|
||||
|
@ -12,7 +12,7 @@ combina controle de baixo nível sobre o desempenho com facilidades de alto
|
||||
nível e garantias de segurança.
|
||||
|
||||
Ele atinge esse objetivo sem necessitar de um coletor de lixo ou um processo
|
||||
*runtime*, permitindo que se use bibliotecas Rust em substituição a bibliotecas
|
||||
*runtime*, permitindo que se use bibliotecas Rust em substituição a bibliotecas
|
||||
em C.
|
||||
|
||||
A primeira versão de Rust, 0.1, apareceu em janeiro de 2012, e por três anos o
|
||||
@ -65,10 +65,10 @@ fn main() {
|
||||
let f: f64 = 1.3f64;
|
||||
|
||||
// Inferência de tipos
|
||||
// Em geral, o compilador Rust consegue inferir qual o tipo de uma
|
||||
// Em geral, o compilador Rust consegue inferir qual o tipo de uma
|
||||
// variável, então você não tem que escrever uma anotação explícita de tipo.
|
||||
// Ao longo desse tutorial, os tipos serão explicitamente anotados em
|
||||
// muitos lugares, mas apenas com propósito demonstrativo. A inferência de
|
||||
// Ao longo desse tutorial, os tipos serão explicitamente anotados em
|
||||
// muitos lugares, mas apenas com propósito demonstrativo. A inferência de
|
||||
// tipos pode gerenciar isso na maioria das vezes.
|
||||
let implicit_x = 1;
|
||||
let implicit_f = 1.3;
|
||||
@ -94,7 +94,7 @@ fn main() {
|
||||
|
||||
// Uma String slice - uma visão imutável em outra string.
|
||||
// Basicamente, isso é um par imutável de ponteiros para uma string - ele
|
||||
// não contém o conteúdo de uma strinf, apenas um ponteiro para o começo e
|
||||
// não contém o conteúdo de uma strinf, apenas um ponteiro para o começo e
|
||||
// um ponteiro para o fim da área de memória para a string, estaticamente
|
||||
// alocada ou contida em outro objeto (nesse caso, `s`)
|
||||
let s_slice: &str = &s;
|
||||
@ -279,7 +279,7 @@ fn main() {
|
||||
// automaticamente desalocado com segurança.
|
||||
let mut mine: Box<i32> = Box::new(3);
|
||||
*mine = 5; // dereference
|
||||
// Aqui, `now_its_mine` possui o controle exclusivo de `mine`. Em outras
|
||||
// Aqui, `now_its_mine` possui o controle exclusivo de `mine`. Em outras
|
||||
// palavras, `mine` tem o controle transferido.
|
||||
let mut now_its_mine = mine;
|
||||
*now_its_mine += 2;
|
||||
@ -317,15 +317,15 @@ fn main() {
|
||||
|
||||
## Outras leituras
|
||||
|
||||
Existe muita coisa sobre Rust - isto aqui é apenas o básico para que você possa
|
||||
entender as coisas mais importantes. Para aprender mais sobre Rust, leia [The
|
||||
Rust Programming Language](http://doc.rust-lang.org/book/index.html) e
|
||||
Existe muita coisa sobre Rust - isto aqui é apenas o básico para que você possa
|
||||
entender as coisas mais importantes. Para aprender mais sobre Rust, leia [The
|
||||
Rust Programming Language](http://doc.rust-lang.org/book/index.html) e
|
||||
acompanhe [/r/rust](http://reddit.com/r/rust). A galera no canal #rust do
|
||||
irc.mozilla.org também estão sempre dispostos a ajudar os novatos.
|
||||
|
||||
Você pode brincar com outras característica de Rust com um compilador online
|
||||
no portal oficial do projeto [Rust Playground](https://play.rust-lang.org), or ler
|
||||
no portal oficial do projeto [Rust Playground](https://play.rust-lang.org), or ler
|
||||
mais na página oficial [Rust website](http://rust-lang.org).
|
||||
|
||||
No Brasil acompanhe os encontros do [Meetup Rust São Paulo]
|
||||
(http://www.meetup.com/pt-BR/Rust-Sao-Paulo-Meetup/).
|
||||
No Brasil acompanhe os encontros do
|
||||
[Meetup Rust São Paulo](http://www.meetup.com/pt-BR/Rust-Sao-Paulo-Meetup/).
|
||||
|
@ -9,8 +9,8 @@ translators:
|
||||
lang: pt-br
|
||||
---
|
||||
|
||||
Solidity permite você programar para a [Ethereum]
|
||||
(https://www.ethereum.org/), uma máquina virtual baseada na tecnologia blockhain
|
||||
Solidity permite você programar para a [Ethereum](https://www.ethereum.org/),
|
||||
uma máquina virtual baseada na tecnologia blockhain
|
||||
para criação e execução de contratos inteligentes, sem necessidade de partes
|
||||
centralizadas ou de confiança.
|
||||
|
||||
@ -20,7 +20,6 @@ possue variáveis de estado, funções e tipos de dados comuns. Funcionalidades
|
||||
particulares de contratados incluem cláusuras modificadoras (guarda), notifica
|
||||
dores de eventos para listerners e variáveis globais customizadas.
|
||||
|
||||
|
||||
Exemplos de contratos Ethereum incluem crowdfunding, votações e audições cegas.
|
||||
|
||||
Erros em código Solidity causam grandes riscos e custos; portanto, você
|
||||
@ -875,6 +874,7 @@ algumEnderecoDeContrato.callcode('nome_da_funcao');
|
||||
```
|
||||
|
||||
## Recursos adicionais
|
||||
|
||||
- [Documetanção Solidity](https://solidity.readthedocs.org/en/latest/)
|
||||
- [Guia de Estilo do Solidity](https://ethereum.github.io/solidity//docs/style-guide/):
|
||||
O guia de estilo Ethereum é derivado do guia de estilo do Python [pep8](https://www.python.org/dev/peps/pep-0008/).
|
||||
@ -883,32 +883,24 @@ algumEnderecoDeContrato.callcode('nome_da_funcao');
|
||||
- [Estratégias de projeto modular para contratos Ethereum](https://docs.erisindustries.com/tutorials/solidity/)
|
||||
|
||||
## Contratos de Exemplo
|
||||
|
||||
- [Dapp Bin](https://github.com/ethereum/dapp-bin)
|
||||
- [Solidity Baby Step Contracts](https://github.com/fivedogit/solidity-baby-steps/tree/master/contracts)
|
||||
- [ConsenSys Contracts](https://github.com/ConsenSys/dapp-store-contracts)
|
||||
- [State of Dapps](http://dapps.ethercasts.com/)
|
||||
|
||||
## Segurança
|
||||
|
||||
- [Thinking About Smart Contract Security](https://blog.ethereum.org/2016/06/19/thinking-smart-contract-security/)
|
||||
- [Smart Contract Security](https://blog.ethereum.org/2016/06/10/smart-contract-security/)
|
||||
- [Hacking Distributed Blog](http://hackingdistributed.com/)
|
||||
|
||||
## Informação excluída intencionalmente
|
||||
- Libraries
|
||||
|
||||
## Estilo
|
||||
|
||||
- [PEP8](https://www.python.org/dev/peps/pep-0008/) é usado como guia de estilo,
|
||||
incluindo sua filosofia geral
|
||||
|
||||
## Editores
|
||||
|
||||
- [Vim Solidity](https://github.com/tomlion/vim-solidity)
|
||||
- Snippets de Editores ([Ultisnips format](https://gist.github.com/nemild/98343ce6b16b747788bc))
|
||||
|
||||
## Trabalhos Futuros
|
||||
- Novas palavras-chave: protected, inheritable
|
||||
- Lista de padrões de design comuns (throttling, RNG, atualização de versão)
|
||||
- Padrões anti-segurança comuns
|
||||
|
||||
|
||||
Sinta-se a vontade para enviar um pull request com quaisquer edições - ou email
|
||||
para nemild - / at- / gmail
|
||||
|
@ -14,7 +14,6 @@ A sintaxe do Stylus é muito flexivel podendo utilizar a sintaxe padrão do CSS
|
||||
|
||||
Stylus não fornece novas opções de estilos, mas dá funcionalidades que permitem deixar seu CSS muito mais dinâmico.
|
||||
|
||||
|
||||
```sass
|
||||
/* Estilo de código
|
||||
==============================*/
|
||||
@ -80,9 +79,9 @@ a {
|
||||
==============================*/
|
||||
|
||||
|
||||
/*
|
||||
/*
|
||||
É possível armazenar um valor CSS (tais como a cor) de uma variável.
|
||||
Embora seja opcional, é recomendado adicionar $ antes de um nome de variável
|
||||
Embora seja opcional, é recomendado adicionar $ antes de um nome de variável
|
||||
para que você possa distinguir uma variável de outro valor CSS.
|
||||
*/
|
||||
|
||||
@ -94,20 +93,20 @@ $body-font = 'Roboto', sans-serif
|
||||
Agora, se você quer mudar a cor, você só tem que fazer a mudança uma vez. */
|
||||
|
||||
body
|
||||
background-color $primary-color
|
||||
color $secondary-color
|
||||
font-family $body-font
|
||||
background-color $primary-color
|
||||
color $secondary-color
|
||||
font-family $body-font
|
||||
|
||||
/* Quando compilar ficaria assim: */
|
||||
body {
|
||||
background-color: #A3A4FF;
|
||||
color: #51527F;
|
||||
font-family: 'Roboto', sans-serif;
|
||||
background-color: #A3A4FF;
|
||||
color: #51527F;
|
||||
font-family: 'Roboto', sans-serif;
|
||||
}
|
||||
|
||||
/ *
|
||||
/ *
|
||||
Este é muito mais fácil de manter do que ter de mudar a cor
|
||||
cada vez que aparece em toda a sua folha de estilo.
|
||||
cada vez que aparece em toda a sua folha de estilo.
|
||||
* /
|
||||
|
||||
|
||||
@ -120,10 +119,10 @@ elemento, você pode querer armazenar esse código em um mixin.
|
||||
|
||||
center()
|
||||
display block
|
||||
margin-left auto
|
||||
margin-right auto
|
||||
left 0
|
||||
right 0
|
||||
margin-left auto
|
||||
margin-right auto
|
||||
left 0
|
||||
right 0
|
||||
|
||||
/* Utilizando um mixin */
|
||||
body {
|
||||
@ -133,12 +132,12 @@ body {
|
||||
|
||||
/* Após compilar ficaria assim: */
|
||||
div {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background-color: #A3A4FF;
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background-color: #A3A4FF;
|
||||
}
|
||||
|
||||
/* Você pode usar mixins para criar uma propriedade estenográfica. */
|
||||
@ -151,7 +150,7 @@ size($width, $height)
|
||||
size(100px, 60px)
|
||||
|
||||
.square
|
||||
size(40px, 40px)
|
||||
size(40px, 40px)
|
||||
|
||||
/* Você pode usar um mixin como uma propriedade CSS. */
|
||||
circle($ratio)
|
||||
@ -223,4 +222,4 @@ for $item in (1..2) /* Repete o bloco 12 vezes */
|
||||
width ($item / 12) * 100% /* Calcula a largura pelo número da coluna*
|
||||
```
|
||||
|
||||
Agora que você conhece um pouco sobre esse poderoso pré-processador de CSS, você está pronto para criar folhas de estilos mais dinâmicas. Para aprofundar seus conhecimentos visite a documentação oficial do stylus em http://stylus-lang.com.
|
||||
Agora que você conhece um pouco sobre esse poderoso pré-processador de CSS, você está pronto para criar folhas de estilos mais dinâmicas. Para aprofundar seus conhecimentos visite a documentação oficial do stylus em [stylus-lang.com](http://stylus-lang.com).
|
||||
|
@ -14,7 +14,7 @@ Swift é uma linguagem de programação para desenvolvimento de aplicações no
|
||||
coexistir com Objective-C e para ser mais resiliente a código com erros, Swift foi apresentada em 2014 na Apple's
|
||||
developer conference WWDC. Foi construída com o compilador LLVM já incluído no Xcode 6 beta.
|
||||
|
||||
O livro oficial [Swift Programming Language] (https://itunes.apple.com/us/book/swift-programming-language/id881256329) da
|
||||
O livro oficial [Swift Programming Language](https://itunes.apple.com/us/book/swift-programming-language/id881256329) da
|
||||
Apple já está disponível via IBooks (apenas em inglês).
|
||||
|
||||
Confira também o tutorial completo de Swift da Apple [getting started guide](https://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/RoadMapiOS/index.html), também disponível apenas em inglês.
|
||||
|
@ -14,10 +14,10 @@ Module Module1
|
||||
module Module1
|
||||
|
||||
Sub Main ()
|
||||
' Uma visão geral de console de aplicativos do Visual Basic antes de
|
||||
' Uma visão geral de console de aplicativos do Visual Basic antes de
|
||||
' mergulharmos mais profundamente na linguagem.
|
||||
' Aspas simples começam comentários.
|
||||
' Para navegar neste tutorial dentro do compilador do Visual Basic,
|
||||
' Para navegar neste tutorial dentro do compilador do Visual Basic,
|
||||
' eu criei um sistema de navegação.
|
||||
' Este sistema de navegação vai ser explicado conforme avançarmos no
|
||||
' tutorial, e você vai entender o que isso significa.
|
||||
@ -275,10 +275,10 @@ module Module1
|
||||
End Module
|
||||
```
|
||||
|
||||
##Referências
|
||||
## Referências
|
||||
|
||||
Aprendi Visual Basic no aplicativo de console. Isso me permitiu entender os princípios da programação de computador para continuar a aprender outras linguagens de programação facilmente.
|
||||
|
||||
Eu criei um tutorial mais aprofundado do <a href="http://www.vbbootcamp.co.uk/" Title="Visual Basic Tutorial">Visual Basic</a> para aqueles que gostariam de saber mais.
|
||||
Eu criei um tutorial mais aprofundado do [Visual Basic](http://www.vbbootcamp.co.uk/) para aqueles que gostariam de saber mais.
|
||||
|
||||
Toda a sintaxe deste tutorial é válida. Copie e cole o código no compilador do Visual Basic e execute (com o F5) o programa.
|
||||
|
@ -13,7 +13,7 @@ This is a tutorial on how to do some typical statistical programming tasks using
|
||||
""" To get started, pip install the following: jupyter, numpy, scipy, pandas,
|
||||
matplotlib, seaborn, requests.
|
||||
Make sure to do this tutorial in a Jupyter notebook so that you get
|
||||
the inline plots and easy documentation lookup. The shell command to open
|
||||
the inline plots and easy documentation lookup. The shell command to open
|
||||
one is simply `jupyter notebook`, then click New -> Python.
|
||||
"""
|
||||
|
||||
@ -227,8 +227,9 @@ sns.lmplot("BirthY", "EstAge", data=hre)
|
||||
|
||||
If you want to learn more, get _Python for Data Analysis_ by Wes McKinney. It's a superb resource and I used it as a reference when writing this tutorial.
|
||||
|
||||
You can also find plenty of interactive IPython tutorials on subjects specific to your interests, like Cam Davidson-Pilon's <a href="http://camdavidsonpilon.github.io/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/" Title="Probabilistic Programming and Bayesian Methods for Hackers">Probabilistic Programming and Bayesian Methods for Hackers</a>.
|
||||
You can also find plenty of interactive IPython tutorials on subjects specific to your interests, like Cam Davidson-Pilon's [Probabilistic Programming and Bayesian Methods for Hackers](http://camdavidsonpilon.github.io/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/).
|
||||
|
||||
Some more modules to research:
|
||||
- text analysis and natural language processing: nltk, http://www.nltk.org
|
||||
- social network analysis: igraph, http://igraph.org/python/
|
||||
|
||||
- text analysis and natural language processing: [nltk](http://www.nltk.org)
|
||||
- social network analysis: [igraph](http://igraph.org/python/)
|
||||
|
@ -60,7 +60,7 @@ int main() {
|
||||
// long как правило занимает от 4 до 8 байт
|
||||
// long long занимает как минимум 64 бита
|
||||
long x_long = 0;
|
||||
long long x_long_long = 0;
|
||||
long long x_long_long = 0;
|
||||
|
||||
// float это 32-битное число с плавающей точкой
|
||||
float x_float = 0.0;
|
||||
@ -124,7 +124,7 @@ int main() {
|
||||
|
||||
// Если между одинарными кавычками есть символ – это символьный литерал,
|
||||
// но это тип int, а не char (по историческим причинам).
|
||||
|
||||
|
||||
int cha = 'a'; // хорошо
|
||||
char chb = 'a'; // тоже хорошо (подразумевается преобразование int в char)
|
||||
|
||||
@ -165,7 +165,7 @@ int main() {
|
||||
// Правильно:
|
||||
int between_0_and_2 = 0 < a && a < 2;
|
||||
|
||||
// Логика
|
||||
// Логика
|
||||
!3; // => 0 (логическое НЕ)
|
||||
!0; // => 1
|
||||
1 && 1; // => 1 (логическое И)
|
||||
@ -206,8 +206,8 @@ int main() {
|
||||
} // => prints "0, 1, 2, 3, 4, 5, 6, 7, 8, 9, "
|
||||
|
||||
printf("\n");
|
||||
|
||||
//Цикл с постусловием
|
||||
|
||||
// Цикл с постусловием
|
||||
int kk = 0;
|
||||
do {
|
||||
printf("%d, ", kk);
|
||||
@ -239,12 +239,12 @@ int main() {
|
||||
exit(-1);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////
|
||||
// Форматирование вывода
|
||||
///////////////////////////////////////
|
||||
|
||||
// Каждое выражение в Си имеет тип, но вы можете привести один тип к другому,
|
||||
// Каждое выражение в Си имеет тип, но вы можете привести один тип к другому,
|
||||
// если хотите (с некоторыми искажениями).
|
||||
|
||||
int x_hex = 0x01; // Вы можете назначать переменные с помощью шестнадцатеричного кода.
|
||||
@ -259,7 +259,7 @@ int main() {
|
||||
|
||||
// Для определения максимального значения типов `char`, `signed char` и `unisigned char`,
|
||||
// соответственно используйте CHAR_MAX, SCHAR_MAX и UCHAR_MAX макросы из <limits.h>
|
||||
|
||||
|
||||
// Целые типы могут быть приведены к вещественным и наоборот.
|
||||
printf("%f\n", (float)100); // %f formats a float
|
||||
printf("%lf\n", (double)100); // %lf formats a double
|
||||
@ -304,8 +304,8 @@ int main() {
|
||||
|
||||
// Объявление указателя на int с адресом массива.
|
||||
int* x_ptr = x_array;
|
||||
// x_ptr сейчас указывает на первый элемент массива (со значением 20).
|
||||
// Это работает, потому что при обращении к имени массива возвращается
|
||||
// x_ptr сейчас указывает на первый элемент массива (со значением 20).
|
||||
// Это работает, потому что при обращении к имени массива возвращается
|
||||
// указатель на первый элемент.
|
||||
// Например, когда массив передаётся в функцию или присваивается указателю, он
|
||||
// неявно преобразуется в указатель.
|
||||
@ -326,7 +326,7 @@ int main() {
|
||||
printf("%d\n", x_array[1]); // => Напечатает 19
|
||||
|
||||
// Вы также можете динамически выделять несколько блоков памяти с помощью
|
||||
// функции malloc из стандартной библиотеки, которая принимает один
|
||||
// функции malloc из стандартной библиотеки, которая принимает один
|
||||
// аргумент типа size_t – количество байт необходимых для выделения.
|
||||
int *my_ptr = malloc(sizeof(*my_ptr) * 20);
|
||||
for (xx = 0; xx < 20; xx++) {
|
||||
@ -335,16 +335,16 @@ int main() {
|
||||
|
||||
// Работа с памятью с помощью указателей может давать неожиданные и
|
||||
// непредсказуемые результаты.
|
||||
printf("%d\n", *(my_ptr + 21)); // => Напечатает кто-нибудь знает, что?
|
||||
printf("%d\n", *(my_ptr + 21)); // => Напечатает кто-нибудь знает, что?
|
||||
// Скорей всего программа вылетит.
|
||||
|
||||
// Когда вы закончили работать с памятью, которую ранее выделили, вам необходимо
|
||||
// Когда вы закончили работать с памятью, которую ранее выделили, вам необходимо
|
||||
// освободить её, иначе это может вызвать утечку памяти или ошибки.
|
||||
free(my_ptr);
|
||||
|
||||
// Строки это массивы символов, но обычно они представляются как
|
||||
// Строки это массивы символов, но обычно они представляются как
|
||||
// указатели на символ (как указатели на первый элемент массива).
|
||||
// Хорошей практикой считается использование `const char *' при объявлении
|
||||
// Хорошей практикой считается использование `const char *' при объявлении
|
||||
// строчного литерала. При таком подходе литерал не может быть изменён.
|
||||
// (например "foo"[0] = 'a' вызовет ошибку!)
|
||||
|
||||
@ -460,7 +460,7 @@ void str_reverse_through_pointer(char *str_in) {
|
||||
void (*f)(char *); // Сигнатура должна полностью совпадать с целевой функцией.
|
||||
f = &str_reverse; // Присвоить фактический адрес (во время исполнения)
|
||||
// "f = str_reverse;" тоже будет работать.
|
||||
//Имя функции (как и массива) возвращает указатель на начало.
|
||||
// Имя функции (как и массива) возвращает указатель на начало.
|
||||
(*f)(str_in); // Просто вызываем функцию через указатель.
|
||||
// "f(str_in);" или вот так
|
||||
}
|
||||
@ -468,10 +468,8 @@ void str_reverse_through_pointer(char *str_in) {
|
||||
|
||||
## На почитать
|
||||
|
||||
Лучше всего найдите копию [K&R, aka "The C Programming Language"](https://en.wikipedia.org/wiki/The_C_Programming_Language)
|
||||
Это **книга** написанная создателями Си. Но будьте осторожны, она содержит идеи которые больше не считаются хорошими.
|
||||
|
||||
Другой хороший ресурс: [Learn C the hard way](http://learncodethehardway.org/c/).
|
||||
Лучше всего найдите копию [K&R, она же "The C Programming Language"](https://en.wikipedia.org/wiki/The_C_Programming_Language),
|
||||
это книга написанная создателями Си. Но будьте осторожны, она содержит идеи которые больше не считаются хорошими.
|
||||
|
||||
Если у вас появился вопрос, почитайте [compl.lang.c Frequently Asked Questions](http://c-faq.com).
|
||||
|
||||
@ -479,4 +477,4 @@ void str_reverse_through_pointer(char *str_in) {
|
||||
Читаемый код лучше, чем красивый или быстрый код.
|
||||
Чтобы научиться писать хороший код, почитайте [Linux kernel coding style](https://www.kernel.org/doc/Documentation/CodingStyle).
|
||||
|
||||
[1] http://stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member
|
||||
[1] [http://stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member](http://stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member)
|
||||
|
@ -128,7 +128,7 @@ open(my $in, "<", "input.txt") or die "Can't open input.txt: $!";
|
||||
open(my $out, ">", "output.txt") or die "Can't open output.txt: $!";
|
||||
open(my $log, ">>", "my.log") or die "Can't open my.log: $!";
|
||||
|
||||
# Читать из файлового дескриптора можно с помощью оператора "<>".
|
||||
# Читать из файлового дескриптора можно с помощью оператора "<>".
|
||||
# В скалярном контексте он читает одну строку из файла, в списковом --
|
||||
# читает сразу весь файл, сохраняя по одной строке в элементе массива:
|
||||
|
||||
@ -154,7 +154,7 @@ logger("We have a logger subroutine!");
|
||||
|
||||
Perl-овые модули предоставляют широкий набор функциональности,
|
||||
так что вы можете не изобретать заново велосипеды, а просто скачать
|
||||
нужный модуль с CPAN (http://www.cpan.org/).
|
||||
нужный модуль с [CPAN](http://www.cpan.org/).
|
||||
Некоторое количество самых полезных модулей включено в стандартную
|
||||
поставку Perl.
|
||||
|
||||
|
@ -5,7 +5,6 @@ contributors:
|
||||
- ["Jigyasa Grover", "https://jigyasa-grover.github.io"]
|
||||
- ["tim Rowledge", "tim@rowledge.org"]
|
||||
---
|
||||
<blockquote>Every effort has been made in the preparation of this material to ensure the accuracy and completeness of the information presented. However, no guarantee is given nor responsibility taken for errors or omissions. In case of any error, questions or suggestions on reach out to me at <a href="https://jigyasa-grover.github.io" target="_blank">jigyasa-grover.github.io</a> or drop me an e-mail at <a href="mailto:grover.jigyasa1@gmail.com" target="_blank">grover[dot]jigyasa1[at]gmail.com</a>.</blockquote>
|
||||
|
||||
- Smalltalk is a fully object-oriented, dynamically typed, reflective programming language with no 'non-object' types.
|
||||
- Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human–computer symbiosis."
|
||||
|
@ -93,15 +93,15 @@ $body-font = 'Roboto', sans-serif
|
||||
Now, if you want to change the color, you only have to make the change once. */
|
||||
|
||||
body
|
||||
background-color $primary-color
|
||||
color $secondary-color
|
||||
font-family $body-font
|
||||
background-color $primary-color
|
||||
color $secondary-color
|
||||
font-family $body-font
|
||||
|
||||
/* After compilation: */
|
||||
body {
|
||||
background-color: #A3A4FF;
|
||||
color: #51527F;
|
||||
font-family: 'Roboto', sans-serif;
|
||||
background-color: #A3A4FF;
|
||||
color: #51527F;
|
||||
font-family: 'Roboto', sans-serif;
|
||||
}
|
||||
|
||||
/ *
|
||||
@ -118,10 +118,10 @@ element, you may want to store that code in a mixin.
|
||||
|
||||
center()
|
||||
display block
|
||||
margin-left auto
|
||||
margin-right auto
|
||||
left 0
|
||||
right 0
|
||||
margin-left auto
|
||||
margin-right auto
|
||||
left 0
|
||||
right 0
|
||||
|
||||
/* Using the mixin */
|
||||
body {
|
||||
@ -131,12 +131,12 @@ body {
|
||||
|
||||
/* After compilation: */
|
||||
div {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background-color: #A3A4FF;
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background-color: #A3A4FF;
|
||||
}
|
||||
|
||||
/* You can use mixins to create a shorthand property. */
|
||||
@ -149,7 +149,7 @@ size($width, $height)
|
||||
size(100px, 60px)
|
||||
|
||||
.square
|
||||
size(40px, 40px)
|
||||
size(40px, 40px)
|
||||
|
||||
/* You can use a mixin as a CSS property. */
|
||||
circle($ratio)
|
||||
@ -224,4 +224,4 @@ for $item in (1..2) /* Repeat block 12 times */
|
||||
width ($item / 12) * 100% /* Calculate row by column number */
|
||||
```
|
||||
|
||||
Now that you know a little about this powerful CSS preprocessor, you're ready to create more dynamic style sheets. To learn more, visit the official stylus documentation at http://stylus-lang.com.
|
||||
Now that you know a little about this powerful CSS preprocessor, you're ready to create more dynamic style sheets. To learn more, visit the official stylus documentation at [stylus-lang.com](https://stylus-lang.com).
|
||||
|
@ -13,19 +13,17 @@ lang: ta-in
|
||||
XML ஆனது ஒரு கட்டமைப்பு மொழி ஆகும் இது தகவலை சேமிக்கவும்
|
||||
தகவலை பரிமாறவும் உருவாக்கபட்டுள்ளது
|
||||
|
||||
HTML போல் அன்றி , XML ஆனது தகவலை மட்டும் கொண்டு செல்ல்கிறது
|
||||
|
||||
HTML போல் அன்றி , XML ஆனது தகவலை மட்டும் கொண்டு செல்ல்கிறது
|
||||
|
||||
## சில வரையறை மற்றும் முன்னுரை
|
||||
## சில வரையறை மற்றும் முன்னுரை
|
||||
|
||||
பல கூறுகளால் அமைக்கப்பட்டது. ஒவொரு கூறுகளிலும் அட்ட்ரிபூட்க்கள் இருக்கும், அவை அந்தந்த கூறுகளை வரையறுக்க பயன்படும். மேலும் அந்த கூறுகளை தகவல் அல்லது கிளை கூறுகள் இருக்கலாம். அணைத்து கோப்புகளிலும் ரூட்/ஆரம்ப கூறு இருக்கும், அது தனக்குள் கிளை கூறுகளை கொண்டுருக்கும்.
|
||||
|
||||
XML பாகுபடுத்தி மிகவும் கண்டிப்பான வீதிகளைக்கொண்டது. [XML தொடரியல் விதிகளை அறிய] (http://www.w3schools.com/xml/xml_syntax.asp).
|
||||
|
||||
XML பாகுபடுத்தி மிகவும் கண்டிப்பான வீதிகளைக்கொண்டது. [XML தொடரியல் விதிகளை அறிய](http://www.w3schools.com/xml/xml_syntax.asp).
|
||||
|
||||
```xml
|
||||
<!-- இது ஒரு XML குறிப்ப -->
|
||||
<!-- குறிப்புக்கள்
|
||||
<!-- குறிப்புக்கள்
|
||||
பலவரி இருக்கலாம் -->
|
||||
|
||||
<!-- கூறுகள்/Elements -->
|
||||
@ -68,7 +66,6 @@ XML பாகுபடுத்தி மிகவும் கண்டிப
|
||||
|
||||
* XML வாக்கிய அமைப்பு
|
||||
|
||||
|
||||
```xml
|
||||
<!-- இது ஒரு XML குறிப்பு -->
|
||||
|
||||
@ -96,20 +93,19 @@ XML பாகுபடுத்தி மிகவும் கண்டிப
|
||||
|
||||
|
||||
<!--
|
||||
|
||||
மேல காட்டப்பட்டுள்ளது ஒரு xml file இன் உதாரணம் ஆகும்
|
||||
அது metadata உடன் ஆரம்பமாகிறது
|
||||
XML ஆனது ஒரு மரத்தை போன்ற கட்டமைப்பை ஒத்தது.
|
||||
இங்கு root node (கொப்பு) `bookstore` இது மூன்று கிளைகள் (child nodes)
|
||||
கொண்டுள்ளது. இந்த கிளைகள் மேலும் சில கிளைகளை கொண்டு இருக்கலாம்
|
||||
ஒவொரு node கட்டமைப்பும் ஒரு `<` ஆரம்பாமாகி `>` முடிவடையும்
|
||||
கிளைகள் இந்த கட்டமைப்புக்கு இடையில் நிறுவப்படும்
|
||||
மேல காட்டப்பட்டுள்ளது ஒரு xml file இன் உதாரணம் ஆகும்
|
||||
அது metadata உடன் ஆரம்பமாகிறது
|
||||
XML ஆனது ஒரு மரத்தை போன்ற கட்டமைப்பை ஒத்தது.
|
||||
இங்கு root node (கொப்பு) `bookstore` இது மூன்று கிளைகள் (child nodes)
|
||||
கொண்டுள்ளது. இந்த கிளைகள் மேலும் சில கிளைகளை கொண்டு இருக்கலாம்
|
||||
ஒவொரு node கட்டமைப்பும் ஒரு `<` ஆரம்பாமாகி `>` முடிவடையும்
|
||||
கிளைகள் இந்த கட்டமைப்புக்கு இடையில் நிறுவப்படும்
|
||||
-->
|
||||
|
||||
|
||||
<!--
|
||||
XML இரண்டு வகையான தகவல்களை கொண்டு செல்லக்கூடியது
|
||||
1- Attributes -> ஒரு கணு(node) பற்றிய metadata
|
||||
1- Attributes -> ஒரு கணு(node) பற்றிய metadata
|
||||
பொதுவாக XML Parser இந்த தகவலை பயன்படுத்தியே தகவலை
|
||||
சரியான முறையில் சேமிக்க.
|
||||
இது xml கட்டமைப்பின் ஆரம்பத்தில் உள்ள name="value"
|
||||
@ -127,21 +123,17 @@ Elements ஒரு `<` ஆரம்பாமாகி `>` முடிவடை
|
||||
|
||||
* சரியான முறையில் ஒழுகுபடுத்தபட்ட X document
|
||||
|
||||
|
||||
ஒரு XML document ஆனது சரியான முறையில் எழுத பட்டிருப்பின் மட்டுமே அது
|
||||
ஒரு XML document ஆனது சரியான முறையில் எழுத பட்டிருப்பின் மட்டுமே அது
|
||||
சிறந்த வகையில் வடிவமைக்கபட்டுள்ளது,எனினும் மேலும் பல கட்டுபாடுகளை
|
||||
நாம் ஒரு xml document உக்கு இட முடியும் உ.ம்:-DTD மற்றும் XML Schema.
|
||||
|
||||
|
||||
ஒரு xml document ஆனது ஒரு வரையறுக்கபட்டிருப்பின் மட்டுமே
|
||||
ஒரு xml document ஆனது ஒரு வரையறுக்கபட்டிருப்பின் மட்டுமே
|
||||
அது சரி என கொள்ளப்படும்
|
||||
|
||||
|
||||
With this tool, you can check the XML data outside the application logic.
|
||||
இந்த கருவியை உபயோகித்து xml தகவல்களை சோதிக்க முடியும்
|
||||
இந்த கருவியை உபயோகித்து xml தகவல்களை சோதிக்க முடியும்
|
||||
|
||||
```xml
|
||||
<!-- கீழே bookstore html document இன் எளிமையான வடிவம்
|
||||
<!-- கீழே bookstore html document இன் எளிமையான வடிவம்
|
||||
DTD வரையறைகளுடன்
|
||||
-->
|
||||
|
||||
@ -166,11 +158,11 @@ With this tool, you can check the XML data outside the application logic.
|
||||
]>
|
||||
|
||||
|
||||
<!-- DTD ஆனது root node ஐ உருவாக்கிய பின் நிறுவ படுகிறது ,இது ஒன்று அல்லது
|
||||
<!-- DTD ஆனது root node ஐ உருவாக்கிய பின் நிறுவ படுகிறது ,இது ஒன்று அல்லது
|
||||
ஒன்றிக்கு மேற்பட்ட child node களை எதிர்பார்க்கிறது.
|
||||
ஒவ்வொரு 'book' உம் கட்டாயமாக ஒரு 'title' , 'price','category', with "Literature"
|
||||
ஆகிய பெறுமானங்களை கொண்டிருத்தல் அவசியம்.
|
||||
-->
|
||||
-->
|
||||
|
||||
<!-- DTD ஆனது xml file ஒன்றினுள் உருவாக்கபடுகிறது-->
|
||||
|
||||
|
@ -8,9 +8,8 @@ contributors:
|
||||
translators:
|
||||
- ["Haydar KULEKCI", "http://scanf.info/"]
|
||||
lang: tr-tr
|
||||
|
||||
---
|
||||
/*
|
||||
|
||||
C halen modern yüksek performans bilgisayarların dili.
|
||||
|
||||
C bir çok programcının kullandığı en düşük seviye dillerdendir, ama
|
||||
@ -24,23 +23,23 @@ anlarsanız sizi isteğiniz yere götürecektir.
|
||||
Çoklu satırlı yorumlar bu şekilde görünür.
|
||||
*/
|
||||
|
||||
// C Standart kütüphanelerini uygulamanıza #include<ornek.h> ile
|
||||
// C Standart kütüphanelerini uygulamanıza #include<ornek.h> ile
|
||||
// dahil edebilirsiniz.
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
// Kendi başlık(header) dosyalarınız dahil etmek için "çift tırnak"
|
||||
// Kendi başlık(header) dosyalarınız dahil etmek için "çift tırnak"
|
||||
// kullanmalısınız.
|
||||
#include "my_header.h"
|
||||
|
||||
// Fonksiyonlarınızı bir .h dosyasında ya da c dosyanızın üst tarafta
|
||||
// Fonksiyonlarınızı bir .h dosyasında ya da c dosyanızın üst tarafta
|
||||
// tanımlayın.
|
||||
|
||||
void function_1();
|
||||
void function_2();
|
||||
|
||||
// Programınızın giriş noktası main isimli bir fonksiyondur ve
|
||||
// Programınızın giriş noktası main isimli bir fonksiyondur ve
|
||||
// integer değer döner
|
||||
int main() {
|
||||
|
||||
@ -62,31 +61,31 @@ int main() {
|
||||
// short değişken tipi genellikle 2 byte boyutundadır.
|
||||
short x_short = 0;
|
||||
|
||||
// char tipi 1 byte boyutunu garanti eder.
|
||||
// char tipi 1 byte boyutunu garanti eder.
|
||||
char x_char = 0;
|
||||
char y_char = 'y'; // Karakterler '' işaretleri arasına yazılır.
|
||||
|
||||
// long tipi 4-8 byte olur; long long tipi en azından 64 bit garantiler.
|
||||
long x_long = 0;
|
||||
long long x_long_long = 0;
|
||||
long long x_long_long = 0;
|
||||
|
||||
// float tipi 32-bit kayan noktalı sayı boyutundadır.
|
||||
float x_float = 0.0;
|
||||
|
||||
// double değişken tipi 64-bit kayan noktalı yazı tipindedir.
|
||||
// double değişken tipi 64-bit kayan noktalı yazı tipindedir.
|
||||
double x_double = 0.0;
|
||||
|
||||
// Integral türleri işaretsiz olabilir. Bunun anlamı, onlar eksi değer
|
||||
// olamaz demektir, ama aynı boyuttaki işaretsiz bir sayının maksimum
|
||||
// Integral türleri işaretsiz olabilir. Bunun anlamı, onlar eksi değer
|
||||
// olamaz demektir, ama aynı boyuttaki işaretsiz bir sayının maksimum
|
||||
// değeri işaretli bir sayının maksimum değeriden büyük olur.
|
||||
unsigned char ux_char;
|
||||
unsigned short ux_short;
|
||||
unsigned int ux_int;
|
||||
unsigned long long ux_long_long;
|
||||
|
||||
// Diğer taraftan char, ki her zaman bir byte boyutundadır, bu tipler
|
||||
// makinenize göre boyut değiştirir. sizeof(T) size bir değişkenin byte
|
||||
// cinsinden boyutunu verir öyle ki bu tipin boyutunu taşınabilir bir
|
||||
// Diğer taraftan char, ki her zaman bir byte boyutundadır, bu tipler
|
||||
// makinenize göre boyut değiştirir. sizeof(T) size bir değişkenin byte
|
||||
// cinsinden boyutunu verir öyle ki bu tipin boyutunu taşınabilir bir
|
||||
// şekilde ifade edilebilir
|
||||
// Örneğin,
|
||||
printf("%lu\n", sizeof(int)); // => 4 (bir çok makinede 4-byte words)
|
||||
@ -96,7 +95,7 @@ int main() {
|
||||
// Bu durumda verimliligin degeri derleme-zamani sabitidir.
|
||||
int a = 1;
|
||||
|
||||
// size_t bir objeyi temsil etmek için kullanılan 2 byte uzunluğundaki bir
|
||||
// size_t bir objeyi temsil etmek için kullanılan 2 byte uzunluğundaki bir
|
||||
// işaretsiz tam sayı tipidir
|
||||
|
||||
size_t size = sizeof(a++); // a++ is not evaluated
|
||||
@ -111,7 +110,7 @@ int main() {
|
||||
// Şu şekilde bir diziyi 0 ile oluşturabilirsiniz:
|
||||
char my_array[20] = {0};
|
||||
|
||||
// Dizinin elemanlarını indexlemek diğer diller gibidir, veya
|
||||
// Dizinin elemanlarını indexlemek diğer diller gibidir, veya
|
||||
// diğer diller C gibi.
|
||||
my_array[0]; // => 0
|
||||
|
||||
@ -137,13 +136,13 @@ int main() {
|
||||
|
||||
// String'ler bir NUL (0x00) byte ile sonlandırılmış karakter dizileridir,
|
||||
// bu string içerisinde özel bir karakter olan '\0' ile gösterilir.
|
||||
// (Biz Nul byte'i string karakterleri arasında bulundurmamıza gerek
|
||||
// (Biz Nul byte'i string karakterleri arasında bulundurmamıza gerek
|
||||
// yoktur; derleyici onu bizim için dizinin sonuna ekler.)
|
||||
char a_string[20] = "This is a string";
|
||||
printf("%s\n", a_string); // %s bir string formatıdır.
|
||||
|
||||
/*
|
||||
a_string 16 karakter uzunluğundadır.
|
||||
a_string 16 karakter uzunluğundadır.
|
||||
17. karakter NUL karakteridir.
|
||||
18., 19. ve 20. karakterler tanımsızdır.(undefined)
|
||||
*/
|
||||
@ -176,7 +175,7 @@ int main() {
|
||||
|
||||
// Karşılaştırma operatörleri muhtemelen tanıdıktır, ama
|
||||
// C'de boolean tipi yoktur. Bunun yerine sayı(int) kullanırız.
|
||||
// 0 false yerine ve diğer herşey true yerine geçmektedir.
|
||||
// 0 false yerine ve diğer herşey true yerine geçmektedir.
|
||||
// (Karşılaştırma operatörleri her zaman 0 veya 1 dönmektedir.)
|
||||
3 == 2; // => 0 (false)
|
||||
3 != 2; // => 1 (true)
|
||||
@ -247,7 +246,7 @@ int main() {
|
||||
// Tip Dönüşümleri
|
||||
///////////////////////////////////////
|
||||
|
||||
// C'de her değer bir tipe sahiptir, ama siz bir değeri bir başka tipe
|
||||
// C'de her değer bir tipe sahiptir, ama siz bir değeri bir başka tipe
|
||||
// dönüştürebilirsiniz.
|
||||
|
||||
int x_hex = 0x01; // Hex literatüründe değer atayabilirsiniz.
|
||||
@ -260,11 +259,11 @@ int main() {
|
||||
// Tip hiçbir hata vermeden taşacaktır(overflow).
|
||||
printf("%d\n", (unsigned char) 257); // => 1 (Max char = 255 eğer karakter 8 bit uzunluğunda ise)
|
||||
|
||||
// `char`, `signed char` ve `unsigned char` karakter tiplerinin maksimum uzunluğunu
|
||||
// belirlemek için <limits.h> kütüphanesindeki CHAR_MAX, SCHAR_MAX ve UCHAR_MAX
|
||||
// `char`, `signed char` ve `unsigned char` karakter tiplerinin maksimum uzunluğunu
|
||||
// belirlemek için <limits.h> kütüphanesindeki CHAR_MAX, SCHAR_MAX ve UCHAR_MAX
|
||||
// macrolarını kullanınız.
|
||||
|
||||
// Integral tipi kayan noktalı yazı tipine dönüştürülecektir ve tam tersi.
|
||||
// Integral tipi kayan noktalı yazı tipine dönüştürülecektir ve tam tersi.
|
||||
printf("%f\n", (float)100); // %f formats a float
|
||||
printf("%lf\n", (double)100); // %lf formats a double
|
||||
printf("%d\n", (char)100.0);
|
||||
@ -273,36 +272,36 @@ int main() {
|
||||
// İşaretçiler (Pointers)
|
||||
///////////////////////////////////////
|
||||
|
||||
// Bir işaretci bellek adresini barındıran bir değişkendir. Tanımlaması ile işaret
|
||||
// edeceği verinin tipi de belirtilecektir. Değişkenlerininzi bellek adreslerini
|
||||
// getirerek bellek ile ilgili karışıklığı ortadan kaldırabilirsiniz.
|
||||
// Bir işaretci bellek adresini barındıran bir değişkendir. Tanımlaması ile işaret
|
||||
// edeceği verinin tipi de belirtilecektir. Değişkenlerininzi bellek adreslerini
|
||||
// getirerek bellek ile ilgili karışıklığı ortadan kaldırabilirsiniz.
|
||||
|
||||
int x = 0;
|
||||
printf("%p\n", &x); // & işareti bir değişkenin bellek adresini getirmek için kullanılır.
|
||||
printf("%p\n", &x); // & işareti bir değişkenin bellek adresini getirmek için kullanılır.
|
||||
// (%p işaretçilerin formatıdır)
|
||||
// => Bazı bellek adresleri yazdırılacaktır.
|
||||
|
||||
|
||||
// İşaretçiler tanımlanırken * ile başlar
|
||||
int *px, not_a_pointer; // px sayı tipinde bir işaretçidir.
|
||||
int *px, not_a_pointer; // px sayı tipinde bir işaretçidir.
|
||||
px = &x; // X değişkeninin bellek adresi px değişkeninde tutulmaktadır.
|
||||
printf("%p\n", px); // => x değişkeninin bellek adresi yazdırılacaktır.
|
||||
printf("%p\n", px); // => x değişkeninin bellek adresi yazdırılacaktır.
|
||||
printf("%d, %d\n", (int)sizeof(px), (int)sizeof(not_a_pointer));
|
||||
// => 64-bit sistemde "8, 4" yazdırılacaktır.
|
||||
|
||||
// İşaretçinin adres olarak gösterdiği yerdeki değeri almak için
|
||||
// İşaretçinin adres olarak gösterdiği yerdeki değeri almak için
|
||||
// değişkenin önüne * işareti ekleyiniz.
|
||||
printf("%d\n", *px); // => 0 bastıracaktır, x in değeridir,
|
||||
printf("%d\n", *px); // => 0 bastıracaktır, x in değeridir,
|
||||
// çünkü px değişkeni x in adresini göstermektedir.
|
||||
|
||||
// Ayrıca siz işaretçinin gösterdiği yerin değerini
|
||||
// değiştirebilirsiniz. Burada referansı parantez içerisinde göstereceğiz
|
||||
// Ayrıca siz işaretçinin gösterdiği yerin değerini
|
||||
// değiştirebilirsiniz. Burada referansı parantez içerisinde göstereceğiz
|
||||
// çünkü ++ işleminin önceliği * işleminden yüksektir.
|
||||
(*px)++; // px'in işaret ettiği değeri 1 artır.
|
||||
(*px)++; // px'in işaret ettiği değeri 1 artır.
|
||||
printf("%d\n", *px); // => 1 yazdırılır.
|
||||
printf("%d\n", x); // => 1 yazdırılır.
|
||||
|
||||
int x_array[20]; // Diziler(arrays) bellekten yan yana bellek bloklarını
|
||||
int x_array[20]; // Diziler(arrays) bellekten yan yana bellek bloklarını
|
||||
// tahsis etmek için iyi bir yöntemdir.
|
||||
int xx;
|
||||
for (xx=0; xx<20; xx++) {
|
||||
@ -312,7 +311,7 @@ int main() {
|
||||
// Bir sayı tipinde işaretçi tanımlanıyor ve x_array'i işaret ediyor.
|
||||
int* x_ptr = x_array;
|
||||
// x_ptr artık dizinin ilk elemanını işaret etmektedir (the integer 20).
|
||||
// Bu çalışacaktır çünkü diziler(arrays) aslında sadece onların ilk
|
||||
// Bu çalışacaktır çünkü diziler(arrays) aslında sadece onların ilk
|
||||
// elemanlarını gösteren birer işaretçidir.
|
||||
// For example, when an array is passed to a function or is assigned to a pointer,
|
||||
// it decays into (implicitly converted to) a pointer.
|
||||
@ -331,25 +330,25 @@ int main() {
|
||||
printf("%d\n", *(x_ptr)); // => 20 yazılacaktır.
|
||||
printf("%d\n", x_array[0]); // => 20 yazılacaktır.
|
||||
|
||||
// İşaretçiler kendi tiplerinde artırılır ve azaltılır.
|
||||
// İşaretçiler kendi tiplerinde artırılır ve azaltılır.
|
||||
printf("%d\n", *(x_ptr + 1)); // => 19 yazılacaktır.
|
||||
printf("%d\n", x_array[1]); // => 19 yazılacaktır.
|
||||
|
||||
// Ayrıca dinamik olarak bir bellek bloğunu standart kütüphanede bulunan
|
||||
// malloc fonksiyonu ile uygulamanız için ayırabilirsiniz. Bu fonksiyon
|
||||
// byte türünden ayırmak istediğiniz bloğun boyutunu parametre olarak alır.
|
||||
// Ayrıca dinamik olarak bir bellek bloğunu standart kütüphanede bulunan
|
||||
// malloc fonksiyonu ile uygulamanız için ayırabilirsiniz. Bu fonksiyon
|
||||
// byte türünden ayırmak istediğiniz bloğun boyutunu parametre olarak alır.
|
||||
int* my_ptr = (int*) malloc(sizeof(int) * 20);
|
||||
for (xx=0; xx<20; xx++) {
|
||||
*(my_ptr + xx) = 20 - xx; // my_ptr[xx] = 20-xx 'de aynı zamanda çalışabilir
|
||||
} // Bellekte 20, 19, 18, 17... 2, 1 (as ints) şeklinde oluşturulmuş olacaktır.
|
||||
|
||||
// Eğer ayrımadığınız bir bellek adresini çağırırsanız
|
||||
// öngörülmeyen bir değer dönecektir.
|
||||
// öngörülmeyen bir değer dönecektir.
|
||||
printf("%d\n", *(my_ptr + 21)); // => kim-bilir-ne-yazacak?
|
||||
|
||||
// Malloc fonksiyonu ile ayrıdığınız bellek kısmı ile işiniz bittiğinde
|
||||
// onu free fonksiyonu ile boşaltmalısınız, aksi durumda uygulamanız
|
||||
// kapatılana kadar belleğin o kısmını kimse kullanamaz.
|
||||
// Malloc fonksiyonu ile ayrıdığınız bellek kısmı ile işiniz bittiğinde
|
||||
// onu free fonksiyonu ile boşaltmalısınız, aksi durumda uygulamanız
|
||||
// kapatılana kadar belleğin o kısmını kimse kullanamaz.
|
||||
free(my_ptr);
|
||||
|
||||
// Metin Dizileri(String) birer karakter dizisidir(char array), ama
|
||||
@ -373,8 +372,8 @@ int add_two_ints(int x1, int x2){
|
||||
}
|
||||
|
||||
/*
|
||||
Fonksiyonlar pass-by-value'dür, ama isterseniz işaretçi referanslarını
|
||||
kullanarak fonksiyona gönderilen parametrenin değerini değiştirebilirsiniz.
|
||||
Fonksiyonlar pass-by-value'dür, ama isterseniz işaretçi referanslarını
|
||||
kullanarak fonksiyona gönderilen parametrenin değerini değiştirebilirsiniz.
|
||||
|
||||
Example: Bir metni tersine çevirme
|
||||
*/
|
||||
@ -404,7 +403,7 @@ printf("%s\n", c); // => ".tset a si sihT"
|
||||
typedef int my_type;
|
||||
my_type my_type_var = 0;
|
||||
|
||||
// Struct'lar bir veri koleksiyonudur.
|
||||
// Struct'lar bir veri koleksiyonudur.
|
||||
struct rectangle {
|
||||
int width;
|
||||
int height;
|
||||
@ -426,14 +425,14 @@ void function_1(){
|
||||
// Bir yapının adresini işaretçiye atayabilirsiniz.
|
||||
struct rectangle* my_rec_ptr = &my_rec;
|
||||
|
||||
// İşaretçi üzerinden bir yapıya ulaşabilirsiniz.
|
||||
// İşaretçi üzerinden bir yapıya ulaşabilirsiniz.
|
||||
(*my_rec_ptr).width = 30;
|
||||
|
||||
// ya da -> işareti ile yapının elemanlarına ulaşabilirsiniz.
|
||||
// ya da -> işareti ile yapının elemanlarına ulaşabilirsiniz.
|
||||
my_rec_ptr->height = 10; // (*my_rec_ptr).height = 10; ile aynıdır.
|
||||
}
|
||||
|
||||
// Kolaylık sağlamak için bir yapıya typedef tanımlayabilirsiniz.
|
||||
// Kolaylık sağlamak için bir yapıya typedef tanımlayabilirsiniz.
|
||||
typedef struct rectangle rect;
|
||||
|
||||
int area(rect r){
|
||||
@ -447,8 +446,8 @@ int area(rect r){
|
||||
/*
|
||||
Çalışma zamanında, fonksiyonların bilinen bir bellek adresleri vardır. Fonksiyon
|
||||
işaretçileri fonksiyonları direk olarak çağırmayı sağlayan veya geri bildirim(callback)
|
||||
için parametre gönderirken kullanılan başka birer işaretçidirler. Ama, syntax tanımı
|
||||
başlangıçta biraz karışık gelebilir.
|
||||
için parametre gönderirken kullanılan başka birer işaretçidirler. Ama, syntax tanımı
|
||||
başlangıçta biraz karışık gelebilir.
|
||||
|
||||
Örnek: bir işaretçiden str_reverse kullanımı
|
||||
*/
|
||||
@ -469,7 +468,7 @@ typedef void (*my_fnp_type)(char *);
|
||||
|
||||
// Gerçek bir işaretçi tanımlandığı zaman ki kullanımı:
|
||||
// ...
|
||||
// my_fnp_type f;
|
||||
// my_fnp_type f;
|
||||
```
|
||||
|
||||
## Daha Fazla Okuma Listesi
|
||||
@ -484,4 +483,4 @@ Readable code is better than clever code and fast code. For a good, sane coding
|
||||
|
||||
Diğer taraftan google sizin için bir arkadaş olabilir.
|
||||
|
||||
[1] http://stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member
|
||||
[1] [stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member](https://stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member)
|
||||
|
@ -313,7 +313,7 @@ angular.module('myApp', []).controller('namesCtrl', function($scope) {
|
||||
|
||||
<p>Total = {{ (quantity * price) | currency }}</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
//一个过滤器可以通过一个管道符 (|) 及一个过滤器表达式添加到一个指令上。
|
||||
//orderBy 过滤器根据一个表达式排序一个数组:
|
||||
@ -327,7 +327,7 @@ angular.module('myApp', []).controller('namesCtrl', function($scope) {
|
||||
|
||||
<div>
|
||||
|
||||
//一个输入框过滤器可以通过一个管道符 (|)
|
||||
//一个输入框过滤器可以通过一个管道符 (|)
|
||||
//以及后跟一个冒号和模式名的 filter 添加到一个指令上。
|
||||
//该过滤器从一个数组中选择一个子集:
|
||||
|
||||
@ -354,7 +354,7 @@ angular.module('myApp', []).controller('namesCtrl', function($scope) {
|
||||
|
||||
// AngularJS $http 是一个从 web 服务器上读取数据的核心服务。
|
||||
// $http.get(url) 这个函数用来读取服务器数据。
|
||||
<div ng-app="myApp" ng-controller="customersCtrl">
|
||||
<div ng-app="myApp" ng-controller="customersCtrl">
|
||||
|
||||
<ul>
|
||||
<li ng-repeat="x in names">
|
||||
@ -395,7 +395,7 @@ header("Access-Control-Allow-Origin: *");
|
||||
// AngularJS 表格
|
||||
|
||||
// 使用 angular 显示表格非常简单:
|
||||
<div ng-app="myApp" ng-controller="customersCtrl">
|
||||
<div ng-app="myApp" ng-controller="customersCtrl">
|
||||
|
||||
<table>
|
||||
<tr ng-repeat="x in names">
|
||||
@ -626,7 +626,7 @@ app.controller("myCtrl", function($scope) {
|
||||
</html>
|
||||
|
||||
//myApp.js
|
||||
var app = angular.module("myApp", []);
|
||||
var app = angular.module("myApp", []);
|
||||
|
||||
// 模块定义中的 [] 参数可用来定义依赖的模块。
|
||||
|
||||
@ -697,14 +697,3 @@ app.controller('myCtrl', function($scope) {
|
||||
$scope.lastName= "Doe";
|
||||
});
|
||||
```
|
||||
|
||||
## 来源 & 参考
|
||||
|
||||
**例子**
|
||||
|
||||
- http://www.w3schools.com/angular/angular_examples.asp
|
||||
|
||||
**参考**
|
||||
|
||||
- http://www.w3schools.com/angular/angular_ref_directives.asp
|
||||
- http://www.w3schools.com/angular/default.asp
|
||||
|
@ -568,6 +568,6 @@ void doSomethingWithAFile(const std::string& filename)
|
||||
|
||||
扩展阅读:
|
||||
|
||||
* [CPP Reference](http://cppreference.com/w/cpp) 提供了最新的语法参考。
|
||||
* 可以在 [CPlusPlus](http://cplusplus.com) 找到一些补充资料。
|
||||
* 可以在 [TheChernoProject - C ++](https://www.youtube.com/playlist?list=PLlrATfBNZ98dudnM48yfGUldqGD0S4FFb)上找到涵盖语言基础和设置编码环境的教程。
|
||||
- [CPP Reference](http://cppreference.com/w/cpp) 提供了最新的语法参考。
|
||||
- 可以在 [CPlusPlus](http://cplusplus.com) 找到一些补充资料。
|
||||
- 可以在 [TheChernoProject - C++](https://www.youtube.com/playlist?list=PLlrATfBNZ98dudnM48yfGUldqGD0S4FFb) 上找到涵盖语言基础和设置编码环境的教程。
|
||||
|
@ -73,7 +73,7 @@ char y_char = 'y'; // 字符变量的字面值需要用单引号包住
|
||||
// long型(长整型)一般需要4个字节到8个字节; 而long long型则至少需要8个字节(64位)
|
||||
|
||||
long x_long = 0;
|
||||
long long x_long_long = 0;
|
||||
long long x_long_long = 0;
|
||||
|
||||
// float一般是用32位表示的浮点数字
|
||||
float x_float = 0.0;
|
||||
@ -93,7 +93,7 @@ unsigned long long ux_long_long;
|
||||
'A' // => 在ASCII字符集中是65
|
||||
|
||||
// char类型一定会占用1个字节,但是其他的类型却会因具体机器的不同而各异
|
||||
// sizeof(T) 可以返回T类型在运行的机器上占用多少个字节
|
||||
// sizeof(T) 可以返回T类型在运行的机器上占用多少个字节
|
||||
// 这样你的代码就可以在各处正确运行了
|
||||
// sizeof(obj)返回表达式(变量、字面量等)的尺寸
|
||||
printf("%zu\n", sizeof(int)); // => 4 (大多数的机器字长为4)
|
||||
@ -144,7 +144,7 @@ char a_string[20] = "This is a string";
|
||||
printf("%s\n", a_string); // %s 可以对字符串进行格式化
|
||||
/*
|
||||
也许你会注意到 a_string 实际上只有16个字节长.
|
||||
第17个字节是一个空字符(NUL)
|
||||
第17个字节是一个空字符(NUL)
|
||||
而第18, 19 和 20 个字符的值是未定义。
|
||||
*/
|
||||
|
||||
@ -365,7 +365,7 @@ for (xx=0; xx<20; xx++) {
|
||||
|
||||
// 声明一个整型的指针,并初始化为指向x_array
|
||||
int* x_ptr = x_array;
|
||||
// x_ptr现在指向了数组的第一个元素(即整数20).
|
||||
// x_ptr现在指向了数组的第一个元素(即整数20).
|
||||
// 这是因为数组通常衰减为指向它们的第一个元素的指针。
|
||||
// 例如,当一个数组被传递给一个函数或者绑定到一个指针时,
|
||||
//它衰减为(隐式转化为)一个指针。
|
||||
@ -533,7 +533,7 @@ int area(const rect *r)
|
||||
例子:通过指针调用str_reverse
|
||||
*/
|
||||
void str_reverse_through_pointer(char *str_in) {
|
||||
// 定义一个函数指针 f.
|
||||
// 定义一个函数指针 f.
|
||||
void (*f)(char *); // 签名一定要与目标函数相同
|
||||
f = &str_reverse; // 将函数的地址在运行时赋给指针
|
||||
(*f)(str_in); // 通过指针调用函数
|
||||
@ -549,7 +549,7 @@ typedef void (*my_fnp_type)(char *);
|
||||
|
||||
// 实际声明函数指针会这么用:
|
||||
// ...
|
||||
// my_fnp_type f;
|
||||
// my_fnp_type f;
|
||||
|
||||
// 特殊字符
|
||||
'\a' // bell
|
||||
@ -610,13 +610,10 @@ typedef void (*my_fnp_type)(char *);
|
||||
|
||||
最好找一本 [K&R, aka "The C Programming Language", “C程序设计语言”](https://en.wikipedia.org/wiki/The_C_Programming_Language)。它是关于C最重要的一本书,由C的创作者撰写。不过需要留意的是它比较古老了,因此有些不准确的地方。
|
||||
|
||||
|
||||
另一个比较好的资源是 [Learn C the hard way](http://learncodethehardway.org/c/)
|
||||
|
||||
如果你有问题,请阅读[compl.lang.c Frequently Asked Questions](http://c-faq.com/)。
|
||||
|
||||
使用合适的空格、缩进,保持一致的代码风格非常重要。可读性强的代码比聪明的代码、高速的代码更重要。可以参考下[Linux内核编码风格](https://www.kernel.org/doc/Documentation/process/coding-style.rst)
|
||||
。
|
||||
除了这些,多多Google吧
|
||||
|
||||
[1] http://stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member
|
||||
[1] [stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member](http://stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member)
|
||||
|
@ -8,7 +8,7 @@ translators:
|
||||
lang: zh-cn
|
||||
---
|
||||
|
||||
Groovy - Java平台的动态语言。[了解更多。](http://www.groovy-lang.org/)
|
||||
Groovy - Java平台的动态语言。[了解更多](http://www.groovy-lang.org/)。
|
||||
|
||||
```groovy
|
||||
/*
|
||||
@ -268,7 +268,7 @@ def clos = { print it }
|
||||
clos( "hi" )
|
||||
|
||||
/*
|
||||
Groovy可以记忆闭包结果 [1][2][3]
|
||||
Groovy可以记忆闭包结果
|
||||
*/
|
||||
def cl = {a, b ->
|
||||
sleep(3000) // 模拟费时操作
|
||||
@ -405,15 +405,6 @@ assert sum(2,5) == 7
|
||||
|
||||
## 图书
|
||||
|
||||
* [Groovy Goodness] (https://leanpub.com/groovy-goodness-notebook)
|
||||
|
||||
* [Groovy in Action] (http://manning.com/koenig2/)
|
||||
|
||||
* [Programming Groovy 2: Dynamic Productivity for the Java Developer] (http://shop.oreilly.com/product/9781937785307.do)
|
||||
|
||||
[1] http://roshandawrani.wordpress.com/2010/10/18/groovy-new-feature-closures-can-now-memorize-their-results/
|
||||
[2] http://www.solutionsiq.com/resources/agileiq-blog/bid/72880/Programming-with-Groovy-Trampoline-and-Memoize
|
||||
[3] http://mrhaki.blogspot.mx/2011/05/groovy-goodness-cache-closure-results.html
|
||||
|
||||
|
||||
|
||||
* [Groovy Goodness](https://leanpub.com/groovy-goodness-notebook)
|
||||
* [Groovy in Action](http://manning.com/koenig2/)
|
||||
* [Programming Groovy 2: Dynamic Productivity for the Java Developer](http://shop.oreilly.com/product/9781937785307.do)
|
||||
|
@ -138,7 +138,7 @@ logger("We have a logger subroutine!");
|
||||
|
||||
#### 使用Perl模块
|
||||
|
||||
Perl模块提供一系列特性来帮助你避免重新发明轮子,CPAN是下载模块的好地方( http://www.cpan.org/ )。Perl发行版本身也包含很多流行的模块。
|
||||
Perl模块提供一系列特性来帮助你避免重新发明轮子,[CPAN](http://www.cpan.org/)是下载模块的好地方。Perl发行版本身也包含很多流行的模块。
|
||||
|
||||
perlfaq有很多常见问题和相应回答,也经常有对优秀CPAN模块的推荐介绍。
|
||||
|
||||
|
@ -74,14 +74,14 @@ Module Module1
|
||||
|
||||
' 一、对应程序目录1,下同
|
||||
|
||||
' 使用 private subs 声明函数。
|
||||
' 使用 private subs 声明函数。
|
||||
Private Sub HelloWorldOutput()
|
||||
' 程序名
|
||||
Console.Title = "Hello World Output | Learn X in Y Minutes"
|
||||
' 使用 Console.Write("") 或者 Console.WriteLine("") 来输出文本到屏幕上
|
||||
' 对应的 Console.Read() 或 Console.Readline() 用来读取键盘输入
|
||||
Console.WriteLine("Hello World")
|
||||
Console.ReadLine()
|
||||
Console.ReadLine()
|
||||
' Console.WriteLine()后加Console.ReadLine()是为了防止屏幕输出信息一闪而过
|
||||
' 类似平时常见的“单击任意键继续”的意思。
|
||||
End Sub
|
||||
@ -188,7 +188,7 @@ Module Module1
|
||||
Console.Write(a.ToString() + " / " + b.ToString())
|
||||
Console.WriteLine(" = " + e.ToString.PadLeft(3))
|
||||
Console.ReadLine()
|
||||
' 询问用户是否继续,注意大小写。
|
||||
' 询问用户是否继续,注意大小写。
|
||||
Console.Write("Would you like to continue? (yes / no)")
|
||||
' 程序读入用户输入
|
||||
answer = Console.ReadLine() ' added a bracket here
|
||||
@ -203,12 +203,12 @@ Module Module1
|
||||
' 这个程序我们将实现从10倒数计数.
|
||||
|
||||
Console.Title = "Using For Loops | Learn X in Y Minutes"
|
||||
' 声明变量和Step (步长,即递减的速度,如-1,-2,-3等)。
|
||||
For i As Integer = 10 To 0 Step -1
|
||||
' 声明变量和Step (步长,即递减的速度,如-1,-2,-3等)。
|
||||
For i As Integer = 10 To 0 Step -1
|
||||
Console.WriteLine(i.ToString) ' 将计数结果输出的屏幕
|
||||
Next i ' 计算新的i值
|
||||
Console.WriteLine("Start")
|
||||
Console.ReadLine()
|
||||
Console.WriteLine("Start")
|
||||
Console.ReadLine()
|
||||
End Sub
|
||||
|
||||
' 八
|
||||
@ -266,8 +266,8 @@ End Module
|
||||
|
||||
## 参考
|
||||
|
||||
我(译注:原作者)在命令行下学习的VB。命令行编程使我能够更好的了解程序编译运行机制,并使学习其它语言变得容易。
|
||||
我(译注:原作者)在命令行下学习的VB。命令行编程使我能够更好的了解程序编译运行机制,并使学习其它语言变得容易。
|
||||
|
||||
如果希望进一步学习VB,这里还有更深层次的 <a href="http://www.vbbootcamp.co.uk/" Title="VB教学">VB教学(英文)</a>。
|
||||
如果希望进一步学习VB,这里还有更深层次的 [VB教学(英文)](http://www.vbbootcamp.co.uk/)。
|
||||
|
||||
所有代码均通过测试。只需复制粘帖到Visual Basic中,并按F5运行即可。
|
||||
所有代码均通过测试。只需复制粘帖到Visual Basic中,并按F5运行即可。
|
||||
|
@ -72,13 +72,8 @@ PCRE提供了一些通用的字元類型,可被當作字元集合使用
|
||||
| ^\S+ | 66.249.64.13 | `^` 為行首, `\S+` 抓取至少一個非空白字元 |
|
||||
| \+[0-9]+ | +1000 | `\+` 抓取 `+` 字元。 `[0-9]` 字元集表示剛好一個數字字元。 可以用 `\+\d+` 達到相同效果。 |
|
||||
|
||||
以上範例皆可在 https://regex101.com/ 測試,步驟如下:
|
||||
以上範例皆可在 [regex101.com](https://regex101.com/) 測試,步驟如下:
|
||||
|
||||
1. 複製範例字串到 `TEST STRING` 區域
|
||||
2. 複製正規表達式字串到 `Regular Expression` 區域
|
||||
2. 複製正規表達式字串到 `Regular Expression` 區域
|
||||
3. 網頁會顯示自動表達式抓取結果
|
||||
|
||||
|
||||
## 更多資料
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user