Jul 22

Еще немного помучал PHP 5.3 на тему Lambda-функций:

$array = array(1, 2, 3);
$array = array_map(function($v) { return $v * $v; }, $array);
var_dump($array);
array(3) {
  [0]=>
  int(1)
  [1]=>
  int(4)
  [2]=>
  int(9)
}

I like that!

written by fxposter \\ tags: , , ,


9 Responses to “Lambda-functions в PHP 5.3: часть 2”

  1. 1. sdfgh153 Says:

    Это ж едрёнамать просто.
    Ну я понимаю, что в пхп зачатки здравого смысла есть, но на фоне неебического количества функций stdlib’а генерирующих очень своеобразные сайд-эффекты, лямбды и замыкания в 5.3 смотрятся как пир во время чумы.

  2. 2. Денис Радченко Says:

    Да, функции к PHP клепали по-пьяни. Как еще объяснить различный порядок аргументов в похожих функциях (сейчас не вспомню).

  3. 3. wiktar Says:

    Как-то грустно на такое смотреть, в сравнении с питоном, хотя бы:

    array = map(lambda x: x*x, [1,2,3])

  4. 4. Константин Says:

    Все так запутанно, прям и не понят сразу эти функции

  5. 5. Kenno80 Says:

    Собсно, а что вы ждал и от пхп?)

  6. 6. FX Poster Says:

    semka
    но на фоне неебического количества функций stdlib’а генерирующих очень своеобразные сайд-эффекты
    Сильно сказано. Я думаю, многие хотели бы переделки stdlib’а в PHP в [хотя бы] модульную форму, не говоря уже об ООП, а также создания полноценных базовых типов типа array/string. :)

    А вообще, если на функциональщине не зацикливаться (а также классах-обьектах) – то PHP – вполне себе хороший язык.

    wiktar
    array = map(lambda x: x*x, [1,2,3])
    Принципиальной разницы между [1, 2, 3] и array(1, 2, 3) нет, обьявление lambda-functions в PHP будет ближе к обычным питоновским функциям, а не к ограниченной lambda. Так что – кому как.

  7. 7. Develop7 Says:

    function($v) { return $v * $v; }

    Оченно смахивает на Javascript

  8. 8. FX Poster Says:

    Ага. А что, плохо что ли?)

  9. 9. Develop7 Says:

    ненене, напротив. ИМХО, подобный синтаксис наиболее близок императивной природе языка (как и в случае с яваскриптом)

Leave a Reply