Ubuntu Touch Выбор даты HTML5

Лямбда прибывает из Лямбда-исчисление и обращается к анонимным функциям в программировании.

, Почему это прохладно? Это позволяет Вам писать, что быстрый бросок далеко функционирует, не называя их. Это также обеспечивает хороший способ записать закрытия. С тем питанием можно сделать вещи как это.

Python

def adder(x):
    return lambda y: x + y
add5 = adder(5)
add5(1)
6

, Как Вы видите от отрывка Python, функциональный сумматор, берет в аргументе x и возвращает анонимную функцию или лямбду, которая берет другой аргумент y. Та анонимная функция позволяет Вам создавать функции из функций. Это - простой пример, но он должен передать лямбды питания, и закрытия имеют.

Примеры на других языках

Perl 5

sub adder {
    my ($x) = @_;
    return sub {
        my ($y) = @_;
        $x + $y
    }
}

my $add5 = adder(5);
print &$add5(1) == 6 ? "ok\n" : "not ok\n";

JavaScript

var adder = function (x) {
    return function (y) {
        return x + y;
    };
};
add5 = adder(5);
add5(1) == 6

JavaScript (ES6)

const adder = x => y => x + y;
add5 = adder(5);
add5(1) == 6

схема

(define adder
    (lambda (x)
        (lambda (y)
           (+ x y))))
(define add5
    (adder 5))
(add5 1)
6

C# 3.5 или выше

Func> adder = 
    (int x) => (int y) => x + y; // `int` declarations optional
Func add5 = adder(5);
var add6 = adder(6); // Using implicit typing
Debug.Assert(add5(1) == 6);
Debug.Assert(add6(-1) == 5);

// Closure example
int yEnclosed = 1;
Func addWithClosure = 
    (x) => x + yEnclosed;
Debug.Assert(addWithClosure(2) == 3);

Swift

func adder(x: Int) -> (Int) -> Int{
   return { y in x + y }
}
let add5 = adder(5)
add5(1)
6

PHP

$a = 1;
$b = 2;

$lambda = function () use (&$a, &$b) {
    echo $a + $b;
};

echo $lambda();

Haskell

(\x y -> x + y) 

Java видит это сообщение

// The following is an example of Predicate : 
// a functional interface that takes an argument 
// and returns a boolean primitive type.

Predicate pred = x -> x % 2 == 0; // Tests if the parameter is even.
boolean result = pred.test(4); // true

, Lua

adder = function(x)
    return function(y)
        return x + y
    end
end
add5 = adder(5)
add5(1) == 6        -- true

Kotlin

val pred = { x: Int -> x % 2 == 0 }
val result = pred(4) // true

Ruby

Ruby немного отличается в этом, Вы не можете назвать лямбду с помощью того же самого синтаксиса в качестве вызывания функции, но это все еще имеет лямбды.

def adder(x)
  lambda { |y| x + y }
end
add5 = adder(5)
add5[1] == 6

Ruby, являющийся Ruby, существует стенография для лямбд, таким образом, можно определить adder этот путь:

def adder(x)
  -> y { x + y }
end

1
задан 15.05.2020, 16:39

1 ответ

В настоящее время инструментарий Ubuntu HTML5 UI (0.1.2) не имеет определенного виджета для средств выбора времени или даты.

, Таким образом, необходимо создать собственный набор виджетов, возможно, с помощью некоторых текстовых полей и селектора опции.

0
ответ дан 15.05.2020, 16:40

Теги

Похожие вопросы