1
0
mirror of https://github.com/adambard/learnxinyminutes-docs.git synced 2025-08-25 07:41:26 +02:00

Merge remote-tracking branch 'refs/remotes/adambard/master'

This commit is contained in:
Bohdan Shtepan
2015-12-03 20:15:02 +02:00
6 changed files with 20 additions and 17 deletions

View File

@@ -70,7 +70,7 @@ void main() {
``` ```
We can define new types with `struct`, `class`, `union`, and `enum`. Structs and unions We can define new types with `struct`, `class`, `union`, and `enum`. Structs and unions
are passed to functions by value (i.e. copied) and classes are passed by reference. Futhermore, are passed to functions by value (i.e. copied) and classes are passed by reference. Furthermore,
we can use templates to parameterize all of these on both types and values! we can use templates to parameterize all of these on both types and values!
```c ```c
@@ -218,7 +218,7 @@ void main() {
// from 1 to 100. Easy! // from 1 to 100. Easy!
// Just pass lambda expressions as template parameters! // Just pass lambda expressions as template parameters!
// You can pass any old function you like, but lambdas are convenient here. // You can pass any function you like, but lambdas are convenient here.
auto num = iota(1, 101).filter!(x => x % 2 == 0) auto num = iota(1, 101).filter!(x => x % 2 == 0)
.map!(y => y ^^ 2) .map!(y => y ^^ 2)
.reduce!((a, b) => a + b); .reduce!((a, b) => a + b);
@@ -228,7 +228,7 @@ void main() {
``` ```
Notice how we got to build a nice Haskellian pipeline to compute num? Notice how we got to build a nice Haskellian pipeline to compute num?
That's thanks to a D innovation know as Uniform Function Call Syntax. That's thanks to a D innovation know as Uniform Function Call Syntax (UFCS).
With UFCS, we can choose whether to write a function call as a method With UFCS, we can choose whether to write a function call as a method
or free function call! Walter wrote a nice article on this or free function call! Walter wrote a nice article on this
[here.](http://www.drdobbs.com/cpp/uniform-function-call-syntax/232700394) [here.](http://www.drdobbs.com/cpp/uniform-function-call-syntax/232700394)
@@ -238,21 +238,23 @@ is of some type A on any expression of type A as a method.
I like parallelism. Anyone else like parallelism? Sure you do. Let's do some! I like parallelism. Anyone else like parallelism? Sure you do. Let's do some!
```c ```c
// Let's say we want to populate a large array with the square root of all
// consecutive integers starting from 1 (up until the size of the array), and we
// want to do this concurrently taking advantage of as many cores as we have
// available.
import std.stdio; import std.stdio;
import std.parallelism : parallel; import std.parallelism : parallel;
import std.math : sqrt; import std.math : sqrt;
void main() { void main() {
// We want take the square root every number in our array, // Create your large array
// and take advantage of as many cores as we have available.
auto arr = new double[1_000_000]; auto arr = new double[1_000_000];
// Use an index, and an array element by reference, // Use an index, access every array element by reference (because we're
// and just call parallel on the array! // going to change each element) and just call parallel on the array!
foreach(i, ref elem; parallel(arr)) { foreach(i, ref elem; parallel(arr)) {
ref = sqrt(i + 1.0); ref = sqrt(i + 1.0);
} }
} }
``` ```

View File

@@ -2,6 +2,7 @@
language: elisp language: elisp
contributors: contributors:
- ["Bastien Guerry", "http://bzg.fr"] - ["Bastien Guerry", "http://bzg.fr"]
- ["Saurabh Sandav", "http://github.com/SaurabhSandav"]
filename: learn-emacs-lisp.el filename: learn-emacs-lisp.el
--- ---
@@ -26,7 +27,7 @@ filename: learn-emacs-lisp.el
;; ;;
;; Going through this tutorial won't damage your computer unless ;; Going through this tutorial won't damage your computer unless
;; you get so angry that you throw it on the floor. In that case, ;; you get so angry that you throw it on the floor. In that case,
;; I hereby decline any responsability. Have fun! ;; I hereby decline any responsibility. Have fun!
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ;;

View File

@@ -29,7 +29,7 @@ Nadie los usa.
Tu tampoco deberías Tu tampoco deberías
=end =end
# Lo primero y principal: Todo es un objeto # En primer lugar: Todo es un objeto
# Los números son objetos # Los números son objetos
@@ -128,7 +128,7 @@ ruta = '/mal/nombre/'
# Los símbolos (son objetos) # Los símbolos (son objetos)
# Los símbolos son inmutables, constantes reusables representadas internamente por un # Los símbolos son inmutables, constantes reusables representadas internamente por un
# valor entero. Son usalmente usados en vez de strings para expresar eficientemente # valor entero. Son normalmente usados en vez de strings para expresar eficientemente
# valores específicos y significativos # valores específicos y significativos
:pendiente.class #=> Symbol :pendiente.class #=> Symbol
@@ -156,7 +156,7 @@ arreglo[0] #=> 1
arreglo.first #=> 1 arreglo.first #=> 1
arreglo[12] #=> nil arreglo[12] #=> nil
# Tal como la aritmética, el acceso como variable[índice] # Al igual que en aritmética, el acceso como variable[índice]
# es sólo azúcar sintáctica # es sólo azúcar sintáctica
# para llamar el método [] de un objeto # para llamar el método [] de un objeto
arreglo.[] 0 #=> 1 arreglo.[] 0 #=> 1

View File

@@ -190,7 +190,7 @@ end
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
-- A table can have a metatable that gives the table operator-overloadish -- A table can have a metatable that gives the table operator-overloadish
-- behavior. Later we'll see how metatables support js-prototypey behaviour. -- behaviour. Later we'll see how metatables support js-prototypey behaviour.
f1 = {a = 1, b = 2} -- Represents the fraction a/b. f1 = {a = 1, b = 2} -- Represents the fraction a/b.
f2 = {a = 2, b = 3} f2 = {a = 2, b = 3}

View File

@@ -73,7 +73,7 @@ c = exp(a)*sin(pi/2) % c = 7.3891
% Calling functions can be done in either of two ways: % Calling functions can be done in either of two ways:
% Standard function syntax: % Standard function syntax:
load('myFile.mat', 'y') % arguments within parantheses, spererated by commas load('myFile.mat', 'y') % arguments within parentheses, separated by commas
% Command syntax: % Command syntax:
load myFile.mat y % no parentheses, and spaces instead of commas load myFile.mat y % no parentheses, and spaces instead of commas
% Note the lack of quote marks in command form: inputs are always passed as % Note the lack of quote marks in command form: inputs are always passed as
@@ -279,7 +279,7 @@ clf clear % clear current figure window, and reset most figure properties
% Properties can be set and changed through a figure handle. % Properties can be set and changed through a figure handle.
% You can save a handle to a figure when you create it. % You can save a handle to a figure when you create it.
% The function gcf returns a handle to the current figure % The function get returns a handle to the current figure
h = plot(x, y); % you can save a handle to a figure when you create it h = plot(x, y); % you can save a handle to a figure when you create it
set(h, 'Color', 'r') set(h, 'Color', 'r')
% 'y' yellow; 'm' magenta, 'c' cyan, 'r' red, 'g' green, 'b' blue, 'w' white, 'k' black % 'y' yellow; 'm' magenta, 'c' cyan, 'r' red, 'g' green, 'b' blue, 'w' white, 'k' black

View File

@@ -18,7 +18,7 @@ lang: ru-ru
% Пунктуационные знаки, используемые в Erlang: % Пунктуационные знаки, используемые в Erlang:
% Запятая (`,`) разделяет аргументы в вызовах функций, структурах данных и % Запятая (`,`) разделяет аргументы в вызовах функций, структурах данных и
% образцах. % образцах.
% Точка (`.`) (с пробелом после них) разделяет функции и выражения в % Точка (`.`) (с пробелом после неё) разделяет функции и выражения в
% оболочке. % оболочке.
% Точка с запятой (`;`) разделяет выражения в следующих контекстах: % Точка с запятой (`;`) разделяет выражения в следующих контекстах:
% формулы функций, выражения `case`, `if`, `try..catch` и `receive`. % формулы функций, выражения `case`, `if`, `try..catch` и `receive`.