Pull to refresh
3
0
Dmitry Ginzburg @dginz

Пользователь

Send message
Я думаю, что можно написать «сравнение X и » и это даст довольно схожие результаты.image

Ещё важный момент в том, что в академической среде заканчивать продолжение подобным образом считается некоторым faux pas. Но в современной речи это все равно норма

И вот автор, не смотря, копирует ваш кусочек с «Явой» и «Лиспом». Провал
Просто в русском языке есть примерно три способа эту букву написать: самый адекватный, он же самый непривычный — английская «h», самый древний, стрёмный — через букву «г» (собственно, образование в русском языке таких слов как «гигиента», «бегемот» и даже «Иешуа Га-Ноцри» Булгакова. А также ещё миллион слов), а где-то посерединке идёт вот это вот «х».

UPD: это, пожалуй, должен быть ответ на строчку выше.
Не совсем понял, что автор имел ввиду. Я перевёл как «абстракция, которая не течёт — вообще не абстракция».


Казалось бы, «абстракция, которую нельзя обсудить (поспорить), не является абстракцией в принципе.»
<зануда>Тут вы не совсем правы, всё-таки арамейский это всё тот же «двоюродный брат».
image
</зануда>
Вот никогда не понимал, а почему нельзя поменять Content-Length и не заниматься вот таким «четыре пробела вместо»?
Да вроде бы и не запрещено это явно: core.telegram.org/api/terms-of-use

Хотя…

In case you want a real Terms of Use, complete with lawyer-speak and all — we don't have that yet, sorry. But we may be adding it in the future.
Это явно не к автору поста:)
Стоит заметить, что если у вас уже есть готовый API для, например, Company или Department, то вы не сможете добавлять методы, возвращающие Stream и будет иметь смысл использовать что-то типа:

List<String> streamEmployeeNames = companies.stream()
        .map(Company::getDepartments).flatMap(Collection::stream)
        .map(Department::getEmployees).flatMap(Collection::stream)
        .map(Employee::getName)
        .collect(toList());


На самом деле, мне кажется, что это выглядит даже опрятнее, чем метод автора, так как не требуется добавлять какие-то непонятные дополнительные методы.
Всё-таки если employee может быть null, то нам нужно изначально брать Optional.ofNullable(employee), потому как Optional.of(employee) как раз выдаст NullPointerException в случае employee == null.
Дока
Шутка про шоколадку с минимальной стоимостью в 100$.
«ВКонтакте» не платит пользователям за найденные уязвимости


image
Подобный трюк очень подробно описывается в книге Ч. Петцольда «Код». Вернее, не как трюк, а как единственный разумный способ реализации разности в обычной системе записи (two’s complement) int-чисел.
А теперь вопрос к знающим: существует ли вероятность того, что такая метаморфоза произойдёт с обычной флешкой? Тогда история из предисловия явно увеличивает шансы быть реальной=)
Что интересно, для получения одного из другого можно использовать встроенные функции curry и uncurry, что довольно удобно для выполнения всяких операций над парами.

Например,
map (uncurry (+)) xs
превращает список пар в список их сумм.

Надо понимать, что функции эти действуют для двух аргументов, больше — либо самому писать, либо удовлетворяться встроенными, которые, впрочем, есть и для 3х аргументов: hackage.haskell.org/package/utility-ht-0.0.5.1/docs/Data-Tuple-HT.html
Как это не пользовался? А все эти succ, pred, isZero и т. д. — не именованные функции?
Да, конечно, даже
if' = id

(UPD: да, не обновил перед отправкой)

fact получается явно не сложнее:
fact n = isZero (n) (id) (n . (fact $ dec $ n))
Можно и не отладочный, а более уместные:
var True = function (x) { 
  return function (y) {
    return x;
  }; 
};

var False = function (x) { 
  return function (y) {
    return y;
  }; 
};

var If = function (p) { 
  return function (t) {
    return function (e) {
      return p(t)(e);
    }
  };
};


опять же выглядит сильно страшнее, чем

true = \x -> \y -> x
false = \x -> y -> y

if = \cond -> \yes -> \no -> cond yes no

Information

Rating
Does not participate
Location
Рамат-Ган, Тель-Авив, Израиль
Date of birth
Registered
Activity