1. PHP / Говнокод #25591

    0

    1. 1
    $result = array_filter($paths,  fn($v) => in_array($v, $names));

    В PHP 7.4 войдут стрелочные функции.
    https://habr.com/ru/post/450544/

    Запостил: _PHP_, 06 Мая 2019

    Комментарии (129) RSS

    • а раньше как у них лямблии были?
      Ответить
      • ffffuuuuunction, как в старом жопоскрипте.
        Ответить
      • Фигурные скобки и ретурн надо было писать:
        $result = array_filter($paths,  function($v) {return in_array($v, $names);});

        Тоже мне проблема.
        Ответить
        • О боже мой, расскажи мне что еще в этом анальном недоязыке не является проблемой с точки зрения неосилятора
          Ответить
          • До версии 5.4 при инициализации массивов нужно было писать array() вместо [].
            Ответить
            • В "PHP5.3" сразу было понятно, где массив. Именно поэто у я за "PHP5.3".
              Ответить
              • Просканировал «nmap»-ом, нашёл RCE уязвимость под найденную версию, получил рут-доступ и установил «PHP 5» на твой веб-сервер, проверь.
                Ответить
                • Спасибо, а то у меня была седьмая версия, а как поставить другую я не знаю.
                  Ответить
                • А можешь ещё "postfix" настроить?
                  Ответить
                  • Покопавшись в старом пыльном книжном шкафу и достав оттуда древнюю как сам мир распечатку мануала по «Postfix», заодно найдя подшивку журналов «Linux Format» за 2005 год, руководство по «MySQL», неизвестно как попавший туда номер «Игромании» и диск со 101 игрой для «Windows 95», потратил неделю на чтение и обучение, после чего набросал конфиг, нашёл и исправил, задав пару вопросов на «Stackoverflow», десяток ошибок и, заново получив рут-доступ, залил настройки на твой веб-сервер, проверь.
                    Ответить
                    • А книжка фигурнова оттуда часом не выпала?
                      Ответить
                  • Книжка на 400 страниц, из них половина картинки и таблицы. Это на месяц максимум чтения

                    https://www.mobt3ath.com/uplode/book/book-27297.pdf

                    Это же не Sendmail с его 2000страничной книгой. Почитал бы да и настроил, линтяй
                    Ответить
                • передал кавычку в качестве имени и сломал нахуй твоеприложение, проверь
                  Ответить
    • Им пришлось добавить fn, чтобы не поломать массивы?

      array("☯" => fn($number) => 100 * $number + 42)


      Раз => и -> заняты, то почему бы не использовать, например, ~>?

      array("☯" => $number ~> 100 * $number + 42)
      Ответить
      • Помоечный язык совершенно
        Ответить
        • По этому я за луа
          Ответить
        • Нет
          Но я против этого fn
          Ответить
          • У них был ещё вариант |$x| => 42 но кто-то посчитал, что это трудночитаемо.
            Ответить
            • А вообще зачем нужны «стрелочные функции»? Они же нужны только для сокращения писанины на несколько символов, когда функцию можно выразить одним выражением (т. е. когда тело функции состоит лишь из ретурна).

              В самом общем случае (когда есть ветвления, циклы, последовательный вызов какой-нибудь фигни с побочным эффектом) всё равно придётся описывать классический блок с фигурными скобками и ретурном.
              Ответить
              • Анскильный язык, в 'J' можно всё записать в одно выражение и течь.
                Ответить
              • схуя бы одного ретурна?

                совершенно валидная функция типа

                $lang => $lang == "PHP" ? "говно" : "не говно"
                Ответить
                • Допустим, ифы можно заменить тернарниками. А всё остальное?
                  Ответить
                  • Да что угодно:

                    $n => $n * $n;
                    $s => strip($s);

                    $a, $b => max($a, $b);
                    Ответить
                    • О, боже! Напиши ещё несколько бессмысленных выражений.
                      Ответить
                      • Написал тебе за щеку, проверь.

                        sort($padarasi, $pidar => $pidar->getIq());
                        $names = map($padarasi, $pidar => $pidar->getName());

                        если тебе все еще не понятно то ты птиху
                        Ответить
                        • ку-ку-рiкуууууууууууууууууу
                          Ответить
                        • Ты хуй. Ты приводишь только удобные тебе примеры, где функция состоит из единственного вызова другой функции.

                          Допустим, getIq возвращает Iq побочным эффектом (ну то есть как функция с типом результата void в сишке или процедура в Паскале):
                          function getIq($pidar, &$iq) {
                              $iq = 70; // здесь какая-то формула, но результат не в return, а в $iq
                          }

                          Тогда мне придётся писа́ть так:
                          sort($pidarasi, function($pidar){getIq($pidar, $tmp); return $tmp;});

                          В стрелочную функцию я переписать это не смогу, потому что в «PHP» нет оператора «запятая» (запятую можно использовать только в заголовке for). Чтобы запихнуть это говно в стрелочную функцию, мне придётся к getIq лепить обёртку:
                          function pure_getIq($pidar) {getIq($pidar, $tmp); return $tmp;}
                          sort($pidarasi, $pidar => pure_getIq($pidar));

                          Ради того, чтобы во второй строке получить красивую стрелочную функцию, мне придётся написать дополнительную строку, такую же, как если бы стрелочных функций не было.

                          Без обёрток как-то можно? Допустим, getIq — библиотечная функция, поэтому переписать я её не могу.
                          Ответить
                          • Ебать ты додик.

                            Ты начал с того что "стрелочная функция не нужна".
                            Я привел тебе пример с тренарником.
                            Ты сказал что кроме тренарника она ни для чего не нужна.
                            Я привел тебе кучу примеров где она нужна.

                            Теперь ты рассказываешь мне что иногда она не подходит.

                            Я не спорю что ИНОГДА она не походит. Но часто подходит.
                            Ответить
                            • коок
                              Ответить
                            • Перечитал ветку. Я начал с того, что для частных случаев стрелочная функция подходит, даже указал, для каких: когда вся функция укладывается в один return с каким-то выражением.
                              Ответить
                              • Ну слава богу. Я не предлагаю же ВСЕГДА ее использовать.
                                Ответить
                                • Не читал, но наверное петух хочет не как в питоне, где только return, а как в js и c# полноценные функции.
                                  Ответить
                                  • Но в питоне они полноценные!
                                    (lambda x: exec("""
                                    for i in range(3):
                                        print(f"{x} —– петух!")
                                    """))("Сёма")
                                    Ответить
                                    • чтоб тебе файл на 900 строк в таком стиле написанны ра3бiрать
                                      Ответить
                                  • вот такая лапшепараша точно не нужна

                                    я этого дерьма в жабе и ее скрипте наелся
                                    Ответить
                                    • 10 DATA "Бойсовы", "Анскильный", "Плавающий"
                                      20 LET COUNT% = 3
                                      30 RESTORE 10
                                      40 READ NAME$
                                      50 PRINT USING "& петух"; NAME$
                                      60 LET COUNT% = COUNT% - 1
                                      70 IF COUNT% > 0 THEN 40
                                      80 STOP
                                      90 END
                                      Ответить
                                      • бойсик образца 1987?
                                        Ответить
                                        • Так точно! Хотя насчёт года я не уверен, но лапши этому коду не занимать.
                                          Ответить
                                          • що це "%"?
                                            Ответить
                                            • «%» –— це цілий півень. Наприклад: i% = 9000
                                              «!» –— це плаваючий півень. Наприклад: x! = 3.14159265
                                              «$» –— це рядковий півень. Наприклад: s$ = "півень"

                                              До речі, «Quick BASIC» має додаткових півнів:
                                              «&» –— це довгий цілий півень. Наприклад: k& = 100500
                                              «#» –— це довгий плаваючий півень. Наприклад: z# = 1e100
                                              Ответить
            • >|$x| => 42
              как в руби...
              Ответить
              • В «Руби», кстати, почти всё возвращает значение. И жидкое междумордие можно лепить почти из чего угодно. Именно поэтому я за «D».

                А в «PHP» сейчас стрелка будет выглядеть чужеродно. Вот если всё остальное из «Руби» добавить...
                Ответить
                • >почти всё возвращает значение.
                  да просто всё.

                  def petux
                    42
                  end
                  
                   p petux # будет 42


                  > Вот если всё остальное из «Руби» добавить...
                  может быть лучше обоссать и сжечь этот кусок говна -- пхп, и взять нормальный язык типа руби?
                  Ответить
                  • Как ты подожгёшь-то, глупенький? Он же влажный мокрый будет!
                    Ответить
                    • Вот-вот! Я давно говорил, что порядок важен: сначала нужно сжигать, а потом обоссывать, но не наоборот!
                      Ответить
                    • а вдруг я ссу киросином?
                      Ответить
                      • Ты пил жидкость из колодца рядом с военным аэродромом?
                        Ответить
              • Не пизди.
                Ответить
                • а то что?
                  Ответить
                  • Не возьмут программистом на "Яuby".
                    Ответить
                    • ОЯuбу, мне это так важно
                      Ответить
                      • Ну иди пиши на языке говна.
                        Ответить
                        • Я не пишу на пхп
                          Ответить
                        • Кое-где у несовершеннолетних еще в ходу нелепые обычаи, касающиеся некоторых предметов, особенно еды. Даже существует целый свод правил-одностиший. («Сало, масло — западло. Колбаса — на член похожа. Сыр — мандятиной воняет. Курицу — петух топтал. Хлеб — растили коммунисты. По картошке — мент топтался. Воду — рыбы обоссали».) И так далее на все продукты питания. Это, конечно, скорее, шутка. Но в описанной выше колонии малолетки не едят ячневую кашу: сечка считается петушиной пищей. И не употребляют капусту, капуста — козлиная пища.
                          Ответить
                          • О, боже! Напиши нам ещё какую-нибудь копипасту.
                            Ответить
                • Действительно, в «Яuby» будет так:
                  { |x| 42 }
                  И то, если используется per se, а не как аргумент метода, нужно добавлять слово «lambda».

                  В новых версиях можно ещё так:
                  -> x {42}
                  Ответить
                  • а еще ещче можно так

                    fui block x
                    42
                    end

                    кажется или как-то так
                    Ответить
                    • guests.each do |guest|
                          fuck guest
                      end
                      Ответить
                      • а слабо нам это в лицо сказать а??
                        Ответить
                        • guests.each do |guest|
                              sayTo(guest.face, "He cJla6o.")
                          end
                          Ответить
                          • ну так приезжай йопт
                            мы тебя ждем йопто
                            попиздим по мужски йопто

                            зы: нахуй скобки то йопто???
                            Ответить
      • Анскилябры, не осилили кобенаторное и тацитное программирование. Именно поэтому я за 'J'.
        Ответить
    • >Изменить способ вывода значений на экран можно с помощью глагола «9!:3».
      ну нашуй этот фаш джэй
      Ответить
      • Нумерованные функции как в ассемблере, классно же.

        Ну дай функции имя, в чём проблема:
        set_display =: 9!:3
           mean =: +/ % #
           set_display 1
        
           mean
        ┌─────────────────┐
        │┌─┬─────────────┐│
        ││3│┌───────┬─┬─┐││
        ││ ││┌─┬───┐│%│#│││
        ││ │││/│┌─┐││ │ │││
        ││ │││ ││+│││ │ │││
        ││ │││ │└─┘││ │ │││
        ││ ││└─┴───┘│ │ │││
        ││ │└───────┴─┴─┘││
        │└─┴─────────────┘│
        └─────────────────┘
           set_display 2 4
        
           mean
        ┌─────┬─┬─┐
        │┌─┬─┐│%│#│
        ││+│/││ │ │
        │└─┴─┘│ │ │
        └─────┴─┴─┘
          ┌─ / ─── +
        ──┼─ %      
          └─ #      
           set_display ''
        
           mean NB. ничего
        !: —– это foreign conjunction, через него реализовано всё общение с внешним миром (ввод, вывод, дллки), с самим интерпретатором (настройки отображения, форматирование и пр. глобальные параметры, работа с именами и локалями) и пр. Для часто используемых функций конечно же даны имена:
        stdout
        1!:2&4
           stdin
        1!:[email protected]: :.stdout
           stderr
        1!:2&5
           wd
        11!:0
        Все эти функции документированы:
        https://www.jsoftware.com/help/dictionary/xmain.htm
        Ответить
        • >Нумерованные функции как в ассемблере, классно же.

          это ты сейчас типа про вектора попёрдываний сказал?
          Ответить
        • 15!: Dynamic Link Library
          18!: Locales
          128!: Miscellaneous

          ебаааат

          как в Sendmail окунулся
          Ответить
    • Не понял почему => нельзя
      array(
          $x => $x . "$x - петух",
          5 => "hui",
      )


      Разве тут есть неоднозначность?
      Ответить
      • Сам же эту неоднозначность только что и написал. Как ты собираешься отличать лямду от пары?
        Ответить
        • Ключем разве может быть не кококонстанта?
          Ответить
        • ахаха
          тупорылые пыхомакаки сделали себе граблю на пустом месте

          почему пыхеры такие тупые?
          Ответить
          • О, боже! Расскажи нам, что ты ещё знаешь о граблях.
            Ответить
            • Жалкое ничтожество!
              Твои попытки защитить пыхопе лишь забавляют меня
              Ответить
              • Святые угодники! Поделись с нами, что ещё забавляет тебя.
                Ответить
                • Забавно бывает наблюдать за птицами
                  Пить пиво сидя на скамеечке весенним вечером
                  Есть шашлыки с водкой на природе
                  Глубокой ночью дрочить на порнуху
                  Ебнуть с просоня крепкого кофе
                  Отрефакторить говнокод выкинув два ненужных и шесть одинаковых кусков
                  После суток ебли с пройфайлером найти о от эн квадрат и сделать о от эн
                  Прочитать развесистую ману и наконец понять как что-то работает
                  Есть гамбургер с картошкой наплевав на жыры
                  Много есть на свете забавного
                  Ответить
                  • >Отрефакторить говнокод выкинув два ненужных и шесть одинаковых кусков
                    >После суток ебли с пройфайлером найти о от эн квадрат и сделать о от эн
                    >Прочитать развесистую ману и наконец понять как что-то работает
                    Хуй в жопу тебе принимать не забавно?
                    Ответить
                    • Надо на ГК пригласить яойщиц. Они будут читать истории про отладку и течь.
                      Ответить
                    • так он вроде и написал что забавно
                      Ответить
          • Во времена, когда появился синтаксис мссивов, никто ни о каких стрелочных функциях и не думал. Ну и, кстати, синтаксис с fn не такой уж и плохой.
            Ответить
            • Когда делали «PHP» — вообще ни о чём не думали и текли. Именно поэтому я против «PHP».
              Ответить
          • В чём тупость, дод?
            Надо было как в джейсе двоеточие, или вообще никак?
            Ответить
      • Можно этот случай разрешать в пользу ключа. Как часто нужен массив функций? Если нужно - оьорачивай в скобки или пиши функцион.
        Ответить

    Добавить комментарий