spaces in code and link spans

This commit is contained in:
Boris Verkhovskiy 2024-04-20 22:52:07 -07:00
parent c9f7d9a92c
commit 12cb60f1b7
9 changed files with 156 additions and 162 deletions

View File

@ -15,4 +15,4 @@ jobs:
with:
ruby-version: '3.2'
- run: gem install mdl
- run: mdl . --ignore-front-matter -r MD011,MD023,MD027,MD028,MD037,MD047
- run: mdl . --ignore-front-matter -r MD011,MD023,MD027,MD028,MD037,MD038,MD039,MD047

View File

@ -10,7 +10,6 @@ translators:
- ["Luis F. Uceta", "https://github.com/uzluisf"]
lang: es-es
---
Raku es un lenguaje de programación altamente capaz y con características
abundantes para hacerlo el lenguage ideal por los próximos 100 años.
@ -58,7 +57,7 @@ my $nombre'de-variable_ = 5; # Esto funciona!
my $booleano = True; # `True` y `False` son valores booleanos en Raku.
my $inverso = !$booleano; # Puedes invertir un booleano con el operador prefijo `!`
my $bool-forzado = so $str; # Y puedes usar el operador prefijo `so` que
# convierte su operador en un Bool
# convierte su operador en un Bool
```
### Arrays y Listas
@ -74,7 +73,7 @@ my @letras = <a b c>; # array de palabras, delimitado por espacios.
my @array = 1, 2, 3;
say @array[2]; # Los índices de un array empiezan por el 0 -- Este es
# el tercer elemento.
# el tercer elemento.
say "Interpola todos los elementos de un array usando [] : @array[]";
#=> Interpola todos los elementos de un array usando [] : 1 2 3
@ -84,7 +83,7 @@ say "Interpola todos los elementos de un array usando [] : @array[]";
my @llaves = 0, 2;
@array[@llaves] = @letras; # Asignación usando un array que contiene valores
# índices
# índices
say @array; #=> a 6 b
```
@ -99,8 +98,8 @@ say @array; #=> a 6 b
## cualquier llave duplicada es deduplicada.
my %hash = 1 => 2,
3 => 4;
my %hash = foo => "bar", # las llaves reciben sus comillas
# automáticamente.
my %hash = foo => "bar", # las llaves reciben sus comillas
# automáticamente.
"some other" => "value", # las comas colgantes estań bien.
;
@ -151,9 +150,9 @@ say devolver-vacio; # imprime Nil
## Algunas estructuras de control producen un valor. Por ejemplo if:
sub devuelva-si {
if True {
"Truthy";
}
if True {
"Truthy";
}
}
say devuelva-si; # imprime Truthy
@ -166,7 +165,7 @@ say return-for; # imprime Nil
## Una subrutina puede tener argumentos opcionales:
sub con-opcional($arg?) { # el signo "?" marca el argumento opcional
say "Podría returnar `(Any)` (valor de Perl parecido al 'null') si no me pasan
un argumento, o returnaré mi argumento";
un argumento, o returnaré mi argumento";
$arg;
}
con-opcional; # devuelve Any
@ -178,9 +177,9 @@ con-opcional(1); # devuelve 1
sub hola-a($nombre = "Mundo") {
say "¡Hola, $nombre!";
}
hola-a; #=> ¡Hola, Mundo!
hola-a(); #=> ¡Hola, Mundo!
hola-a('Tú'); #=> ¡Hola, Tú!
hola-a; #=> ¡Hola, Mundo!
hola-a(); #=> ¡Hola, Mundo!
hola-a('Tú'); #=> ¡Hola, Tú!
## De igual manera, al usar la sintaxis parecida a la de los hashes
## (¡Hurra, sintaxis unificada!), puedes pasar argumentos *nombrados*
@ -204,12 +203,12 @@ sub con-nombre-mandatorio(:$str!) {
say "$str!";
}
con-nombre-mandatorio(str => "Mi texto"); #=> Mi texto!
con-nombre-mandatorio; # error al tiempo de ejecución:
# "Required named parameter not passed"
# ("Parámetro nombrado requerido no proveído")
con-nombre-mandatorio(3);# error al tiempo de ejecución:
# "Too many positional parameters passed"
# ("Demasiados argumentos posicionales proveídos")
con-nombre-mandatorio; # error al tiempo de ejecución:
# "Required named parameter not passed"
# ("Parámetro nombrado requerido no proveído")
con-nombre-mandatorio(3); # error al tiempo de ejecución:
# "Too many positional parameters passed"
# ("Demasiados argumentos posicionales proveídos")
## Si una subrutina toma un argumento booleano nombrado ...
sub toma-un-bool($nombre, :$bool) {
@ -277,7 +276,7 @@ mutar $m; # ¡$n es ahora 43!
## por naturaleza:
mutar 42; # Parámetro '$n' esperaba un contenedor mutable,
# pero recibió un valor Int
# pero recibió un valor Int
## Si en cambio quieres una copia, debes usar `is copy`.
@ -287,7 +286,7 @@ my $x = 42;
sub x-almacena() is rw { $x }
x-almacena() = 52; # En este caso, los paréntesis son mandatorios
# (porque de otra forma, Raku piensa que la función
# `x-almacena` es un identificador).
# `x-almacena` es un identificador).
say $x; #=> 52
```
@ -347,7 +346,7 @@ say $edad > 18 ?? "Eres un adulto" !! "Eres menor de 18";
given "foo bar" {
say $_; #=> foo bar
when /foo/ { # No te preocupies acerca de la coincidencia inteligente
# solo ten presente que `when` la usa.
# solo ten presente que `when` la usa.
# Esto es equivalente a `if $_ ~~ /foo/`.
say "¡Yay!";
}
@ -379,9 +378,9 @@ loop {
loop (my $i = 0; $i < 5; $i++) {
next if $i == 3; # `next` salta a la siguiente iteración, al igual
# que `continue` en otros lenguajes. Ten en cuenta que
# también puedes usar la condicionales postfix (sufijas)
# bucles, etc.
# que `continue` en otros lenguajes. Ten en cuenta que
# también puedes usar la condicionales postfix (sufijas)
# bucles, etc.
say "¡Este es un bucle al estilo de C!";
}
@ -398,18 +397,18 @@ for @array {
.say; # Esto es también permitido.
# Una invocación con punto (dot call) sin "tópico" (recibidor) es
# enviada a `$_` por defecto.
# enviada a `$_` por defecto.
$_.say; # lo mismo de arriba, lo cual es equivalente.
}
for @array {
# Puedes...
next if $_ == 3; # Saltar a la siguiente iteración (`continue` en
# lenguages parecido a C)
# lenguages parecido a C)
redo if $_ == 4; # Re-hacer la iteración, manteniendo la
# misma variable tópica (`$_`)
# misma variable tópica (`$_`)
last if $_ == 5; # Salir fuera del bucle (como `break`
# en lenguages parecido a C)
# en lenguages parecido a C)
}
## La sintaxis de "bloque puntiagudo" no es específica al bucle for.
@ -433,7 +432,7 @@ if computación-larga() -> $resultado {
## - "infix" (infijo): en medio de (como `*` en `4 * 3`).
## - "circumfix" (circunfijo): alrededor de (como `[`-`]` en `[1, 2]`).
## - "post-circumfix" (pos-circunfijo): alrededor de un término,
## posterior a otro término.
## posterior a otro término.
## (como `{`-`}` en `%hash{'key'}`)
## La lista de asociatividad y precedencia se explica más abajo.
@ -506,8 +505,8 @@ False ~~ True; # True
## ociosos/infinitos, usando la Whatever Star:
my @array = 1..*; # 1 al Infinito! `1..Inf` es lo mismo.
say @array[^10]; # puedes pasar arrays como subíndices y devolverá
# un array de resultados. Esto imprimirá
# "1 2 3 4 5 6 7 8 9 10" (y no se quedaré sin memoria!)
# un array de resultados. Esto imprimirá
# "1 2 3 4 5 6 7 8 9 10" (y no se quedaré sin memoria!)
## Nota: Al leer una lista infinita, Raku "cosificará" los elementos que
## necesita y los mantendrá en la memoria. Ellos no serán calculados más de
## una vez. Tampoco calculará más elementos de los que necesita.
@ -518,7 +517,7 @@ say join(' ', @array[15..*]); #=> 15 16 17 18 19
## lo que es equivalente a:
say join(' ', @array[-> $n { 15..$n }]);
## Nota: Si tratas de hacer cualquiera de esos con un array infinito,
## provocará un array infinito (tu programa nunca terminará)
## provocará un array infinito (tu programa nunca terminará)
## Puedes usar eso en los lugares que esperaría, como durante la asignación
## a un array
@ -716,8 +715,7 @@ multi dilo(Str $s) { # un multi es una subrutina por defecto
}
dilo("azul"); # prints "Cadena de texto: azul"
dilo(True); # falla al *tiempo de compilación* con
# "calling 'dilo' will never work with arguments of types ..."
# (invocar 'dilo' nunca funcionará con argumentos de tipos ...")
# (invocar 'dilo' nunca funcionará con argumentos de tipos ...")
## con precondición arbitraria (¿recuerdas los subconjuntos?):
multi es-grande(Int $n where * > 50) { "¡Sí!" } # usando una clausura
multi es-grande(Int $ where 10..50) { "Tal vez." } # Usando coincidencia inteligente
@ -743,7 +741,7 @@ multi sin_ti-o-contigo {
## en muchos lugares.
##
## - `is`, por ejemplo, es actualmente un `multi sub` llamado
## `trait_mod:<is>`.
## `trait_mod:<is>`.
## - `is rw`, es simplemente un despacho a una función con esta signatura:
## sub trait_mod:<is>(Routine $r, :$rw!) {}
##
@ -847,7 +845,7 @@ class Clase-Atrib {
method asignar-valor($param) { # Métodos pueden tomar parámetros.
$!attrib = $param; # Esto funciona porque `$!` es siempre mutable.
# $.attrib = $param; # Incorrecto: No puedes usar la versión inmutable `$.`.
# $.attrib = $param; # Incorrecto: No puedes usar la versión inmutable `$.`.
$.otro-atrib = 5; # Esto funciona porque `$.otro-atrib` es `rw`.
}
@ -864,7 +862,7 @@ my $class-obj = Clase-Atrib.new(atrib => 5);
say $class-obj.devolver-valor; #=> 5
# $class-obj.atrib = 5; # Esto falla porque `has $.atrib` es inmutable
$class-obj.otro-atrib = 10; # En cambio, esto funciona porque el atributo
# público es mutable (`rw`).
# público es mutable (`rw`).
```
### Herencia de Objeto
@ -900,7 +898,7 @@ $Richard.hablar; #=> "Hola, mi nombre es Richard"
my Niño $Madison .= new(edad => 1, nombre => 'Madison');
$Madison.hablar; # imprime "Goo goo ga ga" dado que el método fue cambiado
# en la clase Niño.
# en la clase Niño.
# $Madison.color-favorito # no funciona porque no es heredado
## Cuando se usa `my T $var` (donde `T` es el nombre de la clase), `$var`
@ -1022,11 +1020,11 @@ try {
when X::AdHoc { say "Error: $_" }
#=>Error: Failed to open file /dir/foo: no such file or directory
## Cualquier otra excepción será levantada de nuevo, dado que no
## tenemos un `default`.
## Básicamente, si un `when`
## Cualquier otra excepción será levantada de nuevo, dado que no
## tenemos un `default`.
## Básicamente, si un `when`
## Basically, if a `when` matches (or there's a `default`) marks the
## exception as
## exception as
## "handled" so that it doesn't get re-thrown from the `CATCH`.
## You still can re-throw the exception (see below) by hand.
}
@ -1084,7 +1082,7 @@ module Hello::World { # forma de llaves
unit module Parse::Text; # forma de ámbito de archivo
grammar Parse::Text::Grammar { # Una gramática (grammar en inglés) es un paquete,
# en el cual puedes usar `use`
# en el cual puedes usar `use`
} # Aprenderás más acerca de gramáticas en la sección de regex
## Como se dijo anteriormente, cualquier parte del modelo seis es también un
@ -1180,19 +1178,19 @@ for ^5 -> $a {
## * Phasers al tiempo de compilación
BEGIN { say "[*] Se ejecuta al tiempo de compilación, " ~
"tan pronto como sea posible, una sola vez" }
"tan pronto como sea posible, una sola vez" }
CHECK { say "[*] Se ejecuta al tiempo de compilación, " ~
"tan tarde como sea posible, una sola vez" }
"tan tarde como sea posible, una sola vez" }
## * Phasers al tiempo de ejecución
INIT { say "[*] Se ejecuta al tiempo de ejecución, " ~
"tan pronto como sea posible, una sola vez" }
"tan pronto como sea posible, una sola vez" }
END { say "Se ejecuta al tiempo de ejecución, " ~
"tan tarde como sea posible, una sola vez" }
## * Phasers de bloques
ENTER { say "[*] Se ejecuta cada vez que entra en un bloque, " ~
"se repite en bloques de bucle" }
"se repite en bloques de bucle" }
LEAVE { say "Se ejecuta cada vez que abandona un bloque, incluyendo " ~
"cuando una excepción ocurre. Se repite en bloques de bucle"}
@ -1381,8 +1379,8 @@ say 5!; #=> 120
sub infix:<veces>(Int $n, Block $r) { # infijo va en el medio
for ^$n {
$r(); # Necesitas los paréntesis explícitos para invocar la función
# almacenada en la variable `$r`. De lo contrario, te estaría
# refiriendo a la variable (no a la función), como con `&r`.
# almacenada en la variable `$r`. De lo contrario, te estaría
# refiriendo a la variable (no a la función), como con `&r`.
}
}
3 veces -> { say "hola" }; #=> hola
@ -1412,7 +1410,7 @@ say "abc"{1}; #=> b
%h{$llave}:delete;
## es equivalente a:
postcircumfix:<{ }>(%h, $llave, :delete); # (puedes invocar
# operadores de esta forma)
# operadores de esta forma)
## ¡*Todos* usan los mismos bloques básicos!
## Categorías sintácticas (prefix, infix, ...), argumentos nombrados
## (adverbios), ... - usados para construir el lenguaje - están al alcance
@ -1542,7 +1540,7 @@ say @fib[^10]; #=> 1 1 2 3 5 8 13 21 34 55
## para los parseos ambiguos es determinado por un examen multi-nivel de
## desempate:
## - La coincidencia de token más larga. `foo\s+` le gana a `foo`
## (por 2 o más posiciones)
## (por 2 o más posiciones)
## - El prefijo literal más largo. `food\w*` le gana a `foo\w*` (por 1)
## - Declaración desde la gramática más derivada a la menos derivada
## (las gramáticas son actualmente clases)
@ -1688,7 +1686,7 @@ so 'fooABCABCbar' ~~ / foo ( 'A' <[A..Z]> 'C' ) + bar /; # `True`. (usando `so`
## Ok. Comenzando con las explicaciones de grupos. Como dijimos,
### nuestra objeto `Match` está disponible en la variable `$/`:
say $/; # Imprimirá algo extraño (explicaremos luego) o
# "Nil" si nada coincidió
# "Nil" si nada coincidió
## Como dijimos anteriormente, un objeto Match tiene indexación de array:
say $/[0]; #=> 「ABC」 「ABC」
@ -1733,9 +1731,9 @@ say $/[0][0].Str; #=> ~
say $/[0].list.perl; #=> (Match.new(...),).list
# Podemos ver que es una lista de objetos Match.
# Estos contienen un montón de información: dónde la
# coincidencia comenzó o terminó, el "ast"
# (chequea las acciones más abajo), etc.
# Verás capturas nombradas más abajo con las gramáticas.
# coincidencia comenzó o terminó, el "ast"
# (chequea las acciones más abajo), etc.
# Verás capturas nombradas más abajo con las gramáticas.
## Alternativas - el `or` de regexes
## Advertencia: Es diferente a los regexes de PCRE.
@ -1794,7 +1792,7 @@ sub MAIN($nombre) { say "¡Hola, $nombre!" }
## (usando un "Bool" por un argumento nombrado para que podamos hacer
## `--replace` a cambio de `--replace=1`)
subset File of Str where *.IO.d; # convierte a un objeto IO para chequear si
# un archivo existe
# un archivo existe
multi MAIN('add', $key, $value, Bool :$replace) { ... }
multi MAIN('remove', $key) { ... }
@ -1926,8 +1924,7 @@ Si quieres ir más allá de lo que se muestra aquí, puedes:
explicaciones. Las publicaciones fueron suspendidas al final del 2015 cuando
el lenguaje fue declarado estable y Raku.c fue lanzado.
- Unirte a `#raku` en `irc.freenode.net`. Las personas aquí son siempre serviciales.
- Chequear la [fuente de las funciones y clases de Raku
](https://github.com/rakudo/rakudo/tree/master/src/core.c). Rakudo está principalmente
- Chequear la [fuente de las funciones y clases de Raku](https://github.com/rakudo/rakudo/tree/master/src/core.c). Rakudo está principalmente
escrito en Raku (con mucho de NQP, "Not Quite Perl" ("No Perl Todavía"), un
subconjunto de Raku que es más fácil de implementar y optimizar).
- Leer [documentos acerca del diseño del lenguaje](http://design.raku.org).

View File

@ -13,7 +13,6 @@ lang: fr-fr
Elixir est un langage de programmation fonctionnel moderne reposant sur la machine virtuelle BEAM, qui héberge aussi Erlang.
Il est totalement compatible avec Erlang mais dispose d'une syntaxe plus agréable et apporte de nouvelles fonctionnalités.
```elixir
# Un commentaire simple sur une seule ligne commence par un dièse.
@ -471,7 +470,7 @@ Agent.update(my_agent, fn colors -> ["blue" | colors] end)
## Références
* [Guide de debut](http://elixir-lang.org/getting-started/introduction.html) depuis le site [Elixir](http://elixir-lang.org)
* [Documentation Elixir ](https://elixir-lang.org/docs.html)
* [Documentation Elixir](https://elixir-lang.org/docs.html)
* ["Programming Elixir"](https://pragprog.com/book/elixir/programming-elixir) de Dave Thomas
* [Elixir Cheat Sheet](http://media.pragprog.com/titles/elixir/ElixirCheat.pdf)
* ["Learn You Some Erlang for Great Good!"](http://learnyousomeerlang.com/) de Fred Hebert

View File

@ -14,10 +14,10 @@ lang: hi-in
### मूल अवधारणा
```javascript
// बुनियादी एएमडी एपीआई दो तरीकों लेकिन कुछ भी नहीं होते : ` define` और` require`
// बुनियादी एएमडी एपीआई दो तरीकों लेकिन कुछ भी नहीं होते : `define` और `require`
// और सभी मॉड्यूल परिभाषा और खपत के बारे में है :
// `define` एक मॉड्यूल को परिभाषित करता है
// ` require` निर्भरता का एक सेट का आयात करता है और
// `require` निर्भरता का एक सेट का आयात करता है और
// पारित कर दिया कॉलबैक में उन्हें सेवन करती है
// एक नया नाम देकर हम मॉड्यूल को परिभाषित करने का उपयोग करके शुरू करते हैं
@ -29,13 +29,13 @@ define('awesomeAMD', function(){
};
// एक मॉड्यूल के कारखाने समारोह की मान है
// जब प्राप्त होगा क्या अन्य मॉड्यूल या आवश्यकता कॉल
// हमारे ` awesomeAMD` मॉड्यूल की आवश्यकता होती है ।
// हमारे `awesomeAMD` मॉड्यूल की आवश्यकता होती है ।
// निर्यात मूल्य कुछ भी हो सकता है, (निर्माता ) काम करता है,
// वस्तुओं, पुरातन, (जो कि बहुत ज्यादा मदद नहीं करेगा , हालांकि) भी अपरिभाषित ।
return isAMDAwesome;
});
// अब, हमारे ` awesomeAMD` मॉड्यूल पर निर्भर करता है कि किसी अन्य मॉड्यूल परिभाषित करते हैं।
// अब, हमारे `awesomeAMD` मॉड्यूल पर निर्भर करता है कि किसी अन्य मॉड्यूल परिभाषित करते हैं।
// हमारे परिभाषित करने के लिए एक अतिरिक्त तर्क है कि नोटिस
अब // मॉड्यूल की निर्भरता :
define('loudmouth', ['awesomeAMD'], function(awesomeAMD){
@ -51,8 +51,8 @@ define('loudmouth', ['awesomeAMD'], function(awesomeAMD){
return tellEveryone;
});
// हम अब परिभाषित का उपयोग करने के लिए कैसे जानते हैं के रूप में, के लिए ` require` का उपयोग करते हैं
// हमारे कार्यक्रम बंद किक । ` require` के हस्ताक्षर है :(arrayOfDependencies, callback)`.
// हम अब परिभाषित का उपयोग करने के लिए कैसे जानते हैं के रूप में, के लिए `require` का उपयोग करते हैं
// हमारे कार्यक्रम बंद किक । `require` के हस्ताक्षर है :(arrayOfDependencies, callback)`.
require(['loudmouth'], function(loudmouth){
loudmouth();
});
@ -90,7 +90,7 @@ require(['modules/someClass'], function(SomeClass){
console.log('So here we are, waiting!'); // this will run first
```
परंपरा के अनुसार , आप आमतौर पर एक फाइल में एक मॉड्यूल में ही रखते है । ` require.js` फ़ाइल पथ पर आधारित मॉड्यूल नाम को हल कर सकते हैं , तो आप अपने मॉड्यूल के नाम करने की जरूरत नहीं है , लेकिन बस उनके स्थान का उपयोग कर उन्हें संदर्भित कर सकते हैं । उदाहरण के `में someClass` आपके विन्यास की ` baseUrl` के सापेक्ष ` modules` फ़ोल्डर में माना गया है :
परंपरा के अनुसार , आप आमतौर पर एक फाइल में एक मॉड्यूल में ही रखते है । `require.js` फ़ाइल पथ पर आधारित मॉड्यूल नाम को हल कर सकते हैं , तो आप अपने मॉड्यूल के नाम करने की जरूरत नहीं है , लेकिन बस उनके स्थान का उपयोग कर उन्हें संदर्भित कर सकते हैं । उदाहरण के `में someClass` आपके विन्यास की `baseUrl` के सापेक्ष `modules` फ़ोल्डर में माना गया है :
* app/
* main.js
@ -102,7 +102,7 @@ console.log('So here we are, waiting!'); // this will run first
* things.js
* ...
इसका मतलब यह है कि हम एक मॉड्यूल आईडी निर्दिष्ट किए बिना ` someClass` परिभाषित कर सकते हैं :
इसका मतलब यह है कि हम एक मॉड्यूल आईडी निर्दिष्ट किए बिना `someClass` परिभाषित कर सकते हैं :
```javascript
/* file: app/modules/someClass.js */
@ -116,7 +116,7 @@ define(['daos/things', 'modules/someHelpers'], function(thingsDao, helpers){
});
```
अपने ` main.js` में डिफ़ॉल्ट पथ मानचित्रण व्यवहार का उपयोग ` requirejs.config ( configObj ) ` में परिवर्तन करने के लिए:
अपने `main.js` में डिफ़ॉल्ट पथ मानचित्रण व्यवहार का उपयोग `requirejs.config ( configObj )` में परिवर्तन करने के लिए:
```javascript
/* file: main.js */
@ -129,13 +129,13 @@ requirejs.config({
}
});
require(['jquery', 'coolLibFromBower', 'modules/someHelpers'], function($, coolLib, helpers){
//एक ` main` फ़ाइल में कम से कम एक बार की आवश्यकता को फोन करने की जरूरत है,
//एक `main` फ़ाइल में कम से कम एक बार की आवश्यकता को फोन करने की जरूरत है,
// अन्यथा कोई कोड कभी चलेंगे
coolLib.doFancyStuffWith(helpers.transform($('#foo')));
});
```
` require.js` आधारित क्षुधा आमतौर पर एक डाटा विशेषता के रूप में ` require.js` स्क्रिप्ट टैग को पारित कर दिया है कि एक एकल प्रवेश बिंदु (` main.js` ) होगा। यह स्वचालित रूप से भरी हुई है और pageload पर क्रियान्वित किया जाएगा :
`require.js` आधारित क्षुधा आमतौर पर एक डाटा विशेषता के रूप में `require.js` स्क्रिप्ट टैग को पारित कर दिया है कि एक एकल प्रवेश बिंदु ( `main.js` ) होगा। यह स्वचालित रूप से भरी हुई है और pageload पर क्रियान्वित किया जाएगा :
```html
<!DOCTYPE html>
@ -153,7 +153,7 @@ require(['jquery', 'coolLibFromBower', 'modules/someHelpers'], function($, coolL
कई लोगों को विकास के दौरान समझदार कोड संगठन के लिए एएमडी का उपयोग कर पसंद करते हैं, लेकिन अभी भी पेज लोड पर XHRs के सैकड़ों करने के बजाय उत्पादन में एक भी स्क्रिप्ट फ़ाइल जहाज करने के लिए चाहते हैं।
(राइनो भी समर्थन किया है, तो आप शायद Node.js में चलेगा ) ` require.js` ( अपनी परियोजना की निर्भरता ग्राफ का विश्लेषण , और अपने सभी मॉड्यूल युक्त एक एकल फाइल निर्माण कर सकते हैं कि ` r.js` नामक एक स्क्रिप्ट के साथ आता है ठीक से minified और उपभोग के लिए तैयार है, ) नाम दिया है।
(राइनो भी समर्थन किया है, तो आप शायद Node.js में चलेगा ) `require.js` ( अपनी परियोजना की निर्भरता ग्राफ का विश्लेषण , और अपने सभी मॉड्यूल युक्त एक एकल फाइल निर्माण कर सकते हैं कि `r.js` नामक एक स्क्रिप्ट के साथ आता है ठीक से minified और उपभोग के लिए तैयार है, ) नाम दिया है।
Install it using `npm`:
```shell
@ -183,33 +183,34 @@ $ r.js -o app.build.js
})
```
उत्पादन में बनाया फ़ाइल का उपयोग करने के लिए, बस ` Data-main` स्वैप:
उत्पादन में बनाया फ़ाइल का उपयोग करने के लिए, बस `Data-main` स्वैप:
```html
<script src="require.js" data-main="app/main-built"></script>
```
एक अविश्वसनीय रूप से विस्तृत [निर्माण विकल्पों में से अवलोकन] (https://github.com/jrburke/r.js/blob/master/build/example.build.js) GitHub रेपो में उपलब्ध है।
एक अविश्वसनीय रूप से विस्तृत [निर्माण विकल्पों में से अवलोकन](https://github.com/jrburke/r.js/blob/master/build/example.build.js) GitHub रेपो में उपलब्ध है।
### विषय इस ट्यूटोरियल में शामिल नहीं
* [लोडर प्लगइन्स / रूपांतरण] (http://requirejs.org/docs/plugins.html)
* [CommonJS शैली लोड हो रहा है और निर्यात] (http://requirejs.org/docs/commonjs.html)
* [उन्नत विन्यास] (http://requirejs.org/docs/api.html#config)
* [शिम विन्यास (गैर एएमडी मॉड्यूल लोडिंग)] (http://requirejs.org/docs/api.html#config-shim)
* [सीएसएस लदान और require.js साथ अनुकूलन] (http://requirejs.org/docs/optimization.html#onecss)
* (Https://github.com/jrburke/almond) [बनाता है के लिए almond.js का प्रयोग]
* [लोडर प्लगइन्स / रूपांतरण](http://requirejs.org/docs/plugins.html)
* [CommonJS शैली लोड हो रहा है और निर्यात](http://requirejs.org/docs/commonjs.html)
* [उन्नत विन्यास](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)
### अग्रिम पठन:
* [सरकारी कल्पना] (https://github.com/amdjs/amdjs-api/wiki/AMD)
* [क्यों एएमडी?] (Http://requirejs.org/docs/whyamd.html)
* [यूनिवर्सल मॉड्यूल परिभाषा] (https://github.com/umdjs/umd)
* [सरकारी कल्पना](https://github.com/amdjs/amdjs-api/wiki/AMD)
* [क्यों एएमडी?](Http://requirejs.org/docs/whyamd.html)
* [यूनिवर्सल मॉड्यूल परिभाषा](https://github.com/umdjs/umd)
### कार्यान्वयन:
* [Require.js] (http://requirejs.org)
* [डोजो टूलकिट] (http://dojotoolkit.org/documentation/tutorials/1.9/modules/)
* [Cujo.js] (http://cujojs.com/)
* [Curl.js] (https://github.com/cujojs/curl)
* [Lsjs] (https://github.com/zazl/lsjs)
* [एमडी] (https://github.com/alexlawrence/mmd)
* [Require.js](http://requirejs.org)
* [डोजो टूलकिट](http://dojotoolkit.org/documentation/tutorials/1.9/modules/)
* [Cujo.js](http://cujojs.com/)
* [Curl.js](https://github.com/cujojs/curl)
* [Lsjs](https://github.com/zazl/lsjs)
* [एमडी](https://github.com/alexlawrence/mmd)

View File

@ -18,16 +18,15 @@ void main(string[] args) {
```
अगर आप मेरे जैसे हैं और इंटरनेट पर समय बहुत अधि समय खर्च करते हैं, आप ओं के रे में सुन है
के रे में [ ] ( http://dlang.org/ )। डी प्रोग्रामिंग भाषा में एक आधुनिक, सामान्य प्रयोजन है ,
के रे में [](http://dlang.org/)। डी प्रोग्रामिंग भाषा में एक आधुनिक, सामान्य प्रयोजन है ,
सब कुछ के ि समर्थन कम स्तर सुविओं से करने के बहु - प्रति
अर्थपूर्ण उच्च स्तर जें
D सक्रि रूप से सुपर स्मर्ट एक बड़ समूह द्व िकसि है और नेतृत्व द्व ि है
[ ल्टर ब्रइट ] ( https://en.wikipedia.org/wiki/Walter_Bright ) और
[ आंद्रेई Alexandrescu ] ( https://en.wikipedia.org/wiki/Andrei_Alexandrescu )।
[ल्टर ब्रइट](https://en.wikipedia.org/wiki/Walter_Bright) और
[आंद्रेई Alexandrescu](https://en.wikipedia.org/wiki/Andrei_Alexandrescu)।
ि तरह है ि सभ के हर, चल कुछ उदहरण पर करते हैं!
```c
import std.stdio;
@ -48,9 +47,9 @@ void main() {
do {
n -= (n / 2);
} while(n > 0);
    // लिए और जब तक अच्छा कर रहे हैं, लेकिन D में हम 'foreach' छोरों पसंद करते हैं।
    // '..' पहला मान सहित एक सतत श्रृंखला बनाता है,
    // लेकिन पिछले छोड़कर।
// लिए और जब तक अच्छा कर रहे हैं, लेकिन D में हम 'foreach' छोरों पसंद करते हैं।
// '..' पहला मान सहित एक सतत श्रृंखला बनाता है,
// लेकिन पिछले छोड़कर।
foreach(i; 1..1_000_000) {
if(n % 2 == 0)
writeln(i);
@ -67,7 +66,7 @@ void main() {
}
```
हम ' struct`, `class`,` union`, और `` enum` नए प्रक परिि कर सकते हैं Structs और unions
हम `struct`, `class`, `union`, और `enum` नए प्रक परिि कर सकते हैं Structs और unions
मूल्य से र्य करने के ि ि कर रहे हैं ( नकल) और वर्ग के संदर्भ द्व ि कर रहे हैं इसके अल,
हम प्रक और पर करने के ि टेम्पलेट उपय कर सकते हैं!
@ -130,8 +129,8 @@ auto mat = new Matrix!(3, 3);
Classes रह है , एक दूसरे के ि गुण के रे में करते हैं एक संपत्ति
एक value तरह र्य कर सकते हैं ि एक सम में टे पर है, इसलि हम कर सकते हैं
के शब्द के संरचनओं क्य रचन (` structure.x = 7` ) है
मनुष्य और सेटर तर ( ` object.setX (7) `) !
के शब्द के संरचनओं क्य रचन (`structure.x = 7`) है
मनुष्य और सेटर तर (`object.setX(7)`) !
```c
// Consider a class parameterized on types 'T' & 'U'.
@ -197,15 +196,15 @@ void main() {
धे सदस्य तक पहुँचने !
हमरे िपट पर अन्य वस्तु उन्मुख उपह
` interface`s , ` सार class`es ि
और ` तरीकों override`ing िर्फ तरह िसत करत है:
`interface`s , `सार class`es ि
और `तरीकों override`ing िर्फ तरह िसत करत है:
आप कृपय के रूप में कई इंटरफेस गू करने, एक वर्ग िस्त
हम एस OOP सुविओं देख , लेकि स्वि ियर ड़ ि प्रस्त
प्रथम श्रेण के र्य के र्यत्मक प्रग्रिंग, ` pure`
प्रथम श्रेण के र्य के र्यत्मक प्रग्रिंग, `pure`
करत है, और अपरिवर्तन डेट इसके अल, अपने पसंद के सभ
र्यत्मक एल्गिदम ( नक्श, िल्टर , कम करने और ित्र सकते हैं)
अद्भुत ` std.algorithm` ड्यूल में !
अद्भुत `std.algorithm` ड्यूल में !
```c
import std.algorithm : map, filter, reduce;
@ -229,7 +228,7 @@ void main() {
यह रण है ि एक नव करने के ि धन्यव वर्द सम िंटेक्स के रूप में नते हैं
UFCS के , हम एक िि के रूप में एक सम िखने के ि चुन सकते हैं
मुफ्त सम ! ल्टर इस पर एक अच्छ लेख ि
[यह ] ( http://www.drdobbs.com/cpp/uniform-function-call-syntax/232700394 )
[यह ](http://www.drdobbs.com/cpp/uniform-function-call-syntax/232700394)
संक्षेप में, आप िनक पहल पैरटर र्य कर सकते हैं
एक िि के रूप में ग्रुप ि अभिव्यक्ति पर कुछ प्रक एक है

View File

@ -45,7 +45,7 @@ Un oggetto incapsula le dichiarazioni e le definizioni dei predicati. Gli oggett
# Compilazione e il caricamento dei file sorgenti
Supponendo che il codice di cui sopra per l'oggetto `list` venga salvato in un file` list.lgt`, esso può essere compilato e caricato utilizzando il predicato predefiniti `logtalk_load/1` o la sua abbreviazione `{}/1`, con il percorso del file come argomento (l'estensione può essere omessa):
Supponendo che il codice di cui sopra per l'oggetto `list` venga salvato in un file `list.lgt`, esso può essere compilato e caricato utilizzando il predicato predefiniti `logtalk_load/1` o la sua abbreviazione `{}/1`, con il percorso del file come argomento (l'estensione può essere omessa):
```logtalk
?- {list}.
@ -475,7 +475,7 @@ X = 3
yes
```
Gli eventi possono essere impostati e cancellati dinamicamente in fase di esecuzione chiamando i predicati predefiniti `define_events/5` e` abolish_events/5` .
Gli eventi possono essere impostati e cancellati dinamicamente in fase di esecuzione chiamando i predicati predefiniti `define_events/5` e `abolish_events/5`.
La programmazione event-driven può essere vista come una forma di _computational reflection_. Si noti però che gli eventi sono generati solo quando si utilizza il costrutto di controllo per l'invio di messaggi `::/2`.

View File

@ -21,13 +21,13 @@ void main(string[] args) {
```
Se você é como eu e passa muito tempo na Internet, é provável que tenha ouvido
sobre [D] (http://dlang.org/). A linguagem de programação D é moderna, de uso geral,
sobre [D](http://dlang.org/). A linguagem de programação D é moderna, de uso geral,
linguagem multiparadigma com suporte para tudo, desde recursos de baixo nível até
abstrações expressivas de alto nível.
D é desenvolvido ativamente por um grande grupo de pessoas super-inteligentes e é liderado por
[Walter Bright] (https://en.wikipedia.org/wiki/Walter_Bright) e
[Andrei Alexandrescu] (https://en.wikipedia.org/wiki/Andrei_Alexandrescu).
[Walter Bright](https://en.wikipedia.org/wiki/Walter_Bright) e
[Andrei Alexandrescu](https://en.wikipedia.org/wiki/Andrei_Alexandrescu).
Com tudo isso fora do caminho, vamos dar uma olhada em alguns exemplos!
```d
@ -71,7 +71,7 @@ void main() {
}
```
Podemos definir novos tipos com `struct`,` class`, `union` e` enum`. Estruturas e uniões
Podemos definir novos tipos com `struct`, `class`, `union` e `enum`. Estruturas e uniões
são passados para funções por valor(ou seja, copiados) e as classes são passadas por referência. Além disso,
podemos usar modelos para parametrizar tudo isso em tipos e valores!
@ -232,7 +232,7 @@ Observe como conseguimos construir um bom pipeline haskelliano para calcular num
Isso se deve a uma inovação em D, conhecida como Uniform Function Call Syntax (UFCS).
Com o UFCS, podemos optar por escrever uma chamada de função como método
ou chamada de função grátis! Walter escreveu um bom artigo sobre isso
[aqui.] (http://www.drdobbs.com/cpp/uniform-function-call-syntax/232700394)
[aqui](http://www.drdobbs.com/cpp/uniform-function-call-syntax/232700394).
Em resumo, você pode chamar funções cujo primeiro parâmetro
é de algum tipo A em qualquer expressão do tipo A como método.

View File

@ -27,12 +27,12 @@ curl -sS https://getcomposer.org/installer | php -- --install-dir=~/bin --filena
```
Пользователи Windows должны следовать
[Инструкциям по установке в Windows ](https://getcomposer.org/doc/00-intro.md#installation-windows)
[Инструкциям по установке в Windows](https://getcomposer.org/doc/00-intro.md#installation-windows)
## Подтверждение установки
```sh
# # Проверить версию и перечислить параметры
# Проверить версию и перечислить параметры
composer
# Получить дополнительную помощь для параметров
@ -99,12 +99,11 @@ composer search mailgun
[Packagist.org](https://packagist.org/) является основным хранилищем для пакетов Composer.
Существующие сторонние пакеты ищите там.
## composer.json` и `composer.lock`
## `composer.json` и `composer.lock`
Файл `composer.json` хранит параметры допустимых версий каждой зависимости
вашего проекта, а также другую информацию.
Файл `composer.lock` хранит точную загруженную версию каждой зависимости.
Никогда не редактируйте этот файл.
@ -141,7 +140,6 @@ $mailgun = new Mailgun\Mailgun("key");
### PSR-4-совместимый автозагрузчик
Вы можете добавить в автозагрузчик свои собственные пространства имён.
Добавьте поле `autoload` в `composer.json`:
@ -190,7 +188,7 @@ composer clear-cache
* Создание и распространение ваших собственных пакетов на Packagist.org или в другом репозитории
* Предварительные и пост-скриптовые перехватчики: запуск задач,
когда происходят определенные события Composer
когда происходят определенные события Composer
### Ссылки

View File

@ -135,18 +135,18 @@ selector::after {}
selector {
/* Ölçü birimleri kesin veya göreceli olabilir.*/
/* Ölçü birimleri kesin veya göreceli olabilir.*/
/* Göreceli birimler */
/* Göreceli birimler */
width: 50%; /* Ebeveyn elementin yüzdesel olarak genişliği */
font-size: 2em; /* Öğenin özgün yazı tipi boyutunda katları */
font-size: 2rem; /* veya kök ögenin yazı tipi boyutu */
font-size: 2vw; /* Görüntüleme çerçevesinin genişliğinin %1 olarak katları (CSS 3) */
font-size: 2vh; /* veya onun yüksekliğinin */
font-size: 2vmin; /* Bir vh veya vw'nin hangisi küçükse */
font-size: 2vmax; /* veya daha büyük... */
font-size: 2vmin; /* Bir vh veya vw'nin hangisi küçükse */
font-size: 2vmax; /* veya daha büyük... */
/* Kesin birimler */
/* Kesin birimler */
width: 200px; /* Piksel */
font-size: 20pt; /* Nokta */
width: 5cm; /* Santimetre */
@ -236,7 +236,7 @@ Stilin önceliği ise aşağıdaki gibidir. Unutmayın, öncelik **her bir özel
* `E` `!important` kelimesi yüzünden en yüksek önceliğe sahiptir. Kullanımından kaçınmanız önerilir.
* `F` satıriçi stil olduğu için bir sonraki önceliğe sahiptir.
* `A` bir sonraki önceliğe sahiptir. Çünkü her şeyden daha "özgüdür". 3 belirteci vardır: `p` ögesinin adı, sınıf` class1`, bir öznitelik `attr = 'değer'.
* `A` bir sonraki önceliğe sahiptir. Çünkü her şeyden daha "özgüdür". 3 belirteci vardır: `p` ögesinin adı, sınıf `class1`, bir öznitelik `attr = 'değer'.
* `C`, `B` ile aynı özdeşliğe sahip olsa da, bundan sonra geldiğinden dolayı öncelik hakkına sahiptir.
* `B` bir sonraki önceliğe sahiptir.
* Sonuncu önceliğe sahip olan`D`'dir.