mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-12-24 15:51:41 +03:00
Merge remote-tracking branch 'refs/remotes/adambard/master'
This commit is contained in:
commit
7272f68060
@ -70,7 +70,7 @@ void main() {
|
||||
```
|
||||
|
||||
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!
|
||||
|
||||
```c
|
||||
@ -218,7 +218,7 @@ void main() {
|
||||
// from 1 to 100. Easy!
|
||||
|
||||
// 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)
|
||||
.map!(y => y ^^ 2)
|
||||
.reduce!((a, b) => a + b);
|
||||
@ -228,7 +228,7 @@ void main() {
|
||||
```
|
||||
|
||||
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
|
||||
or free function call! Walter wrote a nice article on this
|
||||
[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!
|
||||
|
||||
```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.parallelism : parallel;
|
||||
import std.math : sqrt;
|
||||
|
||||
void main() {
|
||||
// We want take the square root every number in our array,
|
||||
// and take advantage of as many cores as we have available.
|
||||
// Create your large array
|
||||
auto arr = new double[1_000_000];
|
||||
|
||||
// Use an index, and an array element by reference,
|
||||
// and just call parallel on the array!
|
||||
// Use an index, access every array element by reference (because we're
|
||||
// going to change each element) and just call parallel on the array!
|
||||
foreach(i, ref elem; parallel(arr)) {
|
||||
ref = sqrt(i + 1.0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
```
|
||||
|
@ -2,6 +2,7 @@
|
||||
language: elisp
|
||||
contributors:
|
||||
- ["Bastien Guerry", "http://bzg.fr"]
|
||||
- ["Saurabh Sandav", "http://github.com/SaurabhSandav"]
|
||||
filename: learn-emacs-lisp.el
|
||||
---
|
||||
|
||||
@ -26,7 +27,7 @@ filename: learn-emacs-lisp.el
|
||||
;;
|
||||
;; Going through this tutorial won't damage your computer unless
|
||||
;; 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!
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;
|
||||
|
@ -29,7 +29,7 @@ Nadie los usa.
|
||||
Tu tampoco deberías
|
||||
=end
|
||||
|
||||
# Lo primero y principal: Todo es un objeto
|
||||
# En primer lugar: Todo es un objeto
|
||||
|
||||
# Los números son objetos
|
||||
|
||||
@ -128,7 +128,7 @@ ruta = '/mal/nombre/'
|
||||
|
||||
# Los símbolos (son objetos)
|
||||
# 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
|
||||
|
||||
:pendiente.class #=> Symbol
|
||||
@ -156,7 +156,7 @@ arreglo[0] #=> 1
|
||||
arreglo.first #=> 1
|
||||
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
|
||||
# para llamar el método [] de un objeto
|
||||
arreglo.[] 0 #=> 1
|
||||
|
@ -190,7 +190,7 @@ end
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
-- 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.
|
||||
f2 = {a = 2, b = 3}
|
||||
|
@ -73,7 +73,7 @@ c = exp(a)*sin(pi/2) % c = 7.3891
|
||||
|
||||
% Calling functions can be done in either of two ways:
|
||||
% 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:
|
||||
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
|
||||
@ -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.
|
||||
% 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
|
||||
set(h, 'Color', 'r')
|
||||
% 'y' yellow; 'm' magenta, 'c' cyan, 'r' red, 'g' green, 'b' blue, 'w' white, 'k' black
|
||||
|
@ -18,7 +18,7 @@ lang: ru-ru
|
||||
% Пунктуационные знаки, используемые в Erlang:
|
||||
% Запятая (`,`) разделяет аргументы в вызовах функций, структурах данных и
|
||||
% образцах.
|
||||
% Точка (`.`) (с пробелом после них) разделяет функции и выражения в
|
||||
% Точка (`.`) (с пробелом после неё) разделяет функции и выражения в
|
||||
% оболочке.
|
||||
% Точка с запятой (`;`) разделяет выражения в следующих контекстах:
|
||||
% формулы функций, выражения `case`, `if`, `try..catch` и `receive`.
|
||||
|
Loading…
Reference in New Issue
Block a user