amarao (amarao_san) wrote,
amarao
amarao_san

Power Shell

Я почти закончил читать книжку по нему.

Краткие итоги. Интересная попытка прогнуть язык программирования под обычный шелл.

Если быть точным, интересно то, что концепцию конвеера довели до некого логического завершения. Насколько я знаю, в чистом виде конвеерных конструкций не было ни в одном языке программирования до PS.

PS слаботипизированный язык, т.е. можно написать b=4+"3" и получить в b - 7. Типизация определяется первым аргументом в выражении (т.е. "3"+4 = "34").

Главным следствием из этого является то, что массив (список) может состоять из гетерогенных объектов, каждый из которых вполне может быть классом.

Например, мы можем сделать массив live из объектов human, cat, dog - у них будут как общие методы (.walk), так и специфичные (.talk).

Но, собственно, о конвеере. Конвеер позволяет сделать последовательную обработку элементов списка (массива), каждый элемент конвеера получает в каждый момент времени в переменной $_ текущий элемент.

Что интересного в этом? Во-первых, каждый фильтр (элементы конвеера называются фильтрами) позволяет задать "пред-запуск" и "пост-запуск" (т.е. код, который выполняется при инициализации конвеера и после его окончания).

А второе, это то, что меня удивило на уровне языка (и то, о чём я пишу) - это возможность влиять на порядок прохождения конвеера.

Если выражение конвеера в круглых скобках, то вместо поштучного выполнения (выполнил - передал следующему), фильтр конвеера применяется ко всем элементам конвеера, после чего уже поштучно скармливается всем остальным элементам конвеера.
Subscribe

  • поздне-анимешное

    Один из интересных водоразделов между западной и восточной (японской, японской) культурой я вижу в районе толстовской фразы "Все счастливые семьи…

  • berserk 2017

    Внезапно, если кто не заметил, уже аж 4 серии нового сезона. И он не менее офигенен, чем предыдущий. При том, что местами анимация провисает, история…

  • об обязательности длинноногости анимешных персонажей

    Простая математика: 1) Если лобок не является геометрическим центром тела, оно выглядит искажённым. Либо непропорционально большое туловище с…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 3 comments