Size: a a a

2020 August 29

N

Ni in RubyRush
Dmitriy Tensei Malyshev
ну мож эт я не так понял задачу)
а если понять условие задачи как: "суммировать все введенные аргументы", интересно, то как это можно реализовать
источник

E

Eugene in RubyRush
замыкание типа
источник

E

Eugene in RubyRush
Telegram
Metaprogramming
О замыканиях в JavaScript.

В JavaScript, на самом деле, не "настоящие" замыкания. Я бы даже сказал, что в JS нет замыканий, а есть некая отдалённо напоминающая их эмуляция.

Суть замыканий (closures) в двух вещах:
- в теле функции можно использовать переменные, которые определены до этой функции
- значения этих переменных "фиксируются" ("запираются") в момент определения функции

Посмотрим пример на Elixir-е — "настоящем" функциональном языке:

x = 2
plus_2 = fn(n) -> n + x end

plus_2.(10) # => 12

x = 3

plus_2.(10) # => 12

Итак, мы внутри функции plus_2 используем переменную x, которая определена до этой функции.

Прикол в том, что в момент определения функции значение этой переменной "фиксируется": внутри функции теперь это уже не какой-то там x, а конкретно оказавшаяся там двойка. На место свободной переменной x, фактически, подставляется конкретное содержащееся там в момент определения значение.

Поэтому в последней строке plus_2 всё также продолжает прибавлять двойку к своему единственному аргументу…
источник

E

Eugene in RubyRush
timesRunFactory = () => {
 let count = 0;

 return () => {
   count++;
   return count
 }
}

timesRun = timesRunFactory();

timesRun(); // 1
timesRun(); // 2
источник

DM

Dmitriy Tensei Malys... in RubyRush
не видать мне места сеньора-фронтендера в альфе
источник

E

Eugene in RubyRush
Dmitriy Tensei Malyshev
не видать мне места сеньора-фронтендера в альфе
а там вроде не было таких вопросов
источник

E

Eugene in RubyRush
мне понравилась их заморочка в React.JS с присвоением ключей однородным элементам
источник

E

Eugene in RubyRush
вот, думаю, люди всерьёз же тратят рабочее время на подобные размышления - отличный фреймворк!
источник

E

Eugene in RubyRush
let summator = function() {
 let accumulator = 0;
 return (x) => {
   accumulator = accumulator + x;
   return accumulator;
 }
}()

console.log(summator(1));
console.log(summator(50));
console.log(summator(111));
источник

N

Ni in RubyRush
Eugene
Telegram
Metaprogramming
О замыканиях в JavaScript.

В JavaScript, на самом деле, не "настоящие" замыкания. Я бы даже сказал, что в JS нет замыканий, а есть некая отдалённо напоминающая их эмуляция.

Суть замыканий (closures) в двух вещах:
- в теле функции можно использовать переменные, которые определены до этой функции
- значения этих переменных "фиксируются" ("запираются") в момент определения функции

Посмотрим пример на Elixir-е — "настоящем" функциональном языке:

x = 2
plus_2 = fn(n) -> n + x end

plus_2.(10) # => 12

x = 3

plus_2.(10) # => 12

Итак, мы внутри функции plus_2 используем переменную x, которая определена до этой функции.

Прикол в том, что в момент определения функции значение этой переменной "фиксируется": внутри функции теперь это уже не какой-то там x, а конкретно оказавшаяся там двойка. На место свободной переменной x, фактически, подставляется конкретное содержащееся там в момент определения значение.

Поэтому в последней строке plus_2 всё также продолжает прибавлять двойку к своему единственному аргументу…
Вот это круто, спасибо
источник

E

Eugene in RubyRush
интересно посмотреть, как это можно воспроизвести на Ruby как можно ближе к тексту

понятно, что эталонное решение это типа:

def add(x)
 @sum ||= 0
 @sum += x
end


...но с "функциональными приблудами" тоже должно быть возможно - в Ruby такой же механизм "захвата переменных"
источник

E

Eugene in RubyRush
Ni
Вот это круто, спасибо
На здоровье!
источник

N

Ni in RubyRush
Eugene
интересно посмотреть, как это можно воспроизвести на Ruby как можно ближе к тексту

понятно, что эталонное решение это типа:

def add(x)
 @sum ||= 0
 @sum += x
end


...но с "функциональными приблудами" тоже должно быть возможно - в Ruby такой же механизм "захвата переменных"
Ну понятно, что через @ переменные это возможно, но это 100% не решение на реальном собесе
источник

E

Eugene in RubyRush
Ni
Ну понятно, что через @ переменные это возможно, но это 100% не решение на реальном собесе
на собесе по Ruby это эталонное решение
источник

E

Eugene in RubyRush
для собеса по JS (очередной дисклеймер: не проходил ни одного) код выше
источник

b

bratela in RubyRush
Привет коллеги. Слетел Grub при очередном обновлении Win 10. С флешки не грузится в биос не попасть . Чего делать не понимаю ???? Если кто может помочь буду благодарен. Линукс как вторая система.
источник

DM

Dmitriy Tensei Malys... in RubyRush
bratela
Привет коллеги. Слетел Grub при очередном обновлении Win 10. С флешки не грузится в биос не попасть . Чего делать не понимаю ???? Если кто может помочь буду благодарен. Линукс как вторая система.
расскуривать статьи по восстановлению загрузчика
источник

DM

Dmitriy Tensei Malys... in RubyRush
неприятная штука
источник

VP

Vadim Petrov in RubyRush
Таганрог😄
источник

E

Eugene in RubyRush
Eugene
интересно посмотреть, как это можно воспроизвести на Ruby как можно ближе к тексту

понятно, что эталонное решение это типа:

def add(x)
 @sum ||= 0
 @sum += x
end


...но с "функциональными приблудами" тоже должно быть возможно - в Ruby такой же механизм "захвата переменных"
я сделаль:

summator = -> do
 accumulator = 0
 ->(x) { accumulator += x }
end.()

puts summator.(1)
puts summator.(50)
puts summator.(111)


(на всякий случай, а то не все понимают, прости господи, постиронию: такой код не стоит писать на Ruby)
источник