LINUX.ORG.RU

Что нового в Python 2.4


0

0

Вышел Python 2.4 RC1. Наиболее заметные изменения:
- специальный тип данных для десятичных чисел (PEP 327)
- Generator Expressions (PEP 289) -- синтаксический аналог list comprehensions для итераторов
- декораторы (PEP 318) в форме предложенной Гвидо ван Россумом
- объединение Integer и LongInteger (PEP 237)
- многочисленные улучшения, касающиеся сортировки, арифметики с большими числами, синтаксиса языка
- оптимизатция итераторов и операций с последовательностями
- улучшенный оптимизатор байткода.

В стандартной библиотеке существенных изменений нет

>>> Подробности

anonymous

Проверено: Demetrio ()

Ответ на: комментарий от CybOrc

> е. Я имею в виду перловые переменные-члены объекта...

use fields; , bro.

AlexM ★★★★★
()
Ответ на: комментарий от CybOrc

Собственно говоря, в перле присутствуют в том или ином виде практически все "модные парадигмы" программирования. Правда, в силу эклектичности языка (и расп^Hслабленности его авторов), синтаксическое оформление этих парадигм зачастую довольно причудливое :-). Ну, и отсутствует императивное поощрение Good Practices... С другой стороны, дионисийский подход вполне имеет право на жизнь :-). Really don't mind if you sit this one out...

AlexM ★★★★★
()
Ответ на: комментарий от CybOrc

> В этом отношении да... Но общая перловая дефективность - возможность
> написания нечитабельного кода, невнятные префиксы переменных,
> отсутствие исключений - хуже, чем отсутствие объявлений переменных...
> С pychecker'ом хоть и костыль, но все же perl -wc худо-бедно заменяет,
> а вот отсутствие исключений для современного языка - это грустно...

какие тебе префиксы не нравятся ? $` $? ? perldoc perlvar и use English.
Про эксэпшны читаем здесь : http://search.cpan.org/~pjordan/Exception-1.7/Exception.pm
А про нечитабельный код - это на любом языке можно написать. Если развить твою мысль, давайте в C/C++ тоже скобки отменим.

Поэтому красноглазые которые perl видели только на обложках книг взявшись за руки стройными рядами идут в сад.

nuBo
()
Ответ на: комментарий от nuBo

Ну, я видел перл не только на обложках книг, я даже немножко писал на нем: http://idisys.iae.nsk.su/~alex/shots/2001_02_09_203718_shot.jpg :-), но могу сказать, что питон и вправду элегантный и более продуманный синтаксически и, э-э-э, эстетически, язык :-)

AlexM ★★★★★
()
Ответ на: комментарий от nuBo

> Про эксэпшны читаем здесь : http://search.cpan.org/~pjordan/Exception-1.7/Exception.pm

Ну, читаем... И что? От того, что я прочту это, в DBD::mysql, DBD::Pg, XML::LibXML, HTML::Template etc магически появится поддержка этих эксцепшнов? Кстати, а для вложенных экцепшенов они уже сделали более гуманный синтаксис? :) И, кстати, есть у фиговины один забавный баг с деструкторами... :) Кто не просто нашел эту бодягу в CPAN'е, а пытался юзать, знают :)

Пока в CPAN процентов 90% модулей не начнут использовать этот Exception, можно считать, что в Перле исключений нет.

CybOrc
()
Ответ на: комментарий от CybOrc

Вы наверное пришли с какого-то другого языка к использованию perl-а и сейчас очень возмущены что perl на него совсем не похож ? А в перечисленных вами модулях нет надобности поддерживать Exception-ы, просто потому что там есть свои, совершенно замечательные методы обработки ошибок.

И на последок. Пока 90% программеров не станут использовать Питон, можно считать, что Питона нет :)

nuBo
()
Ответ на: комментарий от nuBo

А что, хороший перлскрипт-генератор был :-). Даже, помнится, через -Mstrict работало :-). Ну, и разумеется, сабсты с автоевалами и т.п.- далеко не единственные, и отнюдь не самые главные достоинства этого генератора. Впрочем, все уже быльем поросло :-)

AlexM ★★★★★
()
Ответ на: комментарий от nuBo

Ну, да, нет надобности. Это вы либо не писали ничего, что можно было бы назвать "добротно сделанным", либо лукавите, либо и вправду считаете нормальным устраивать проверку на вшивость после каждого обращения к базе данных (что, вообще-то, заколебывает программиста и замусоривает код). Можно, конечно, писать на каждый чих OO-style врапперы (или даже генерить их), но это не так удобно...

AlexM ★★★★★
()
Ответ на: комментарий от nuBo

> Вы наверное пришли с какого-то другого языка к использованию perl-а и сейчас очень возмущены что perl на него совсем не похож ?

Лет пять-шесть назад я пришел с другого языка :) Я немного эстет, и от уродливости перловых конструкций по сравнению с элегантным (правильный тут эпитет подобрали :)) Питоном меня уже коробит.

> А в перечисленных вами модулях нет надобности поддерживать Exception-ы, просто потому что там есть свои, совершенно замечательные методы обработки ошибок.

Ага, метод обработки называется "die" :D Извините, мне это не подходит, мне нужно получить исключение, чтобы программа могла определить по нему, как действовать дальше, и не повеситься при этом, выбираясь по вложенным eval'ам и не выкапывая псевдообъект подключения сообщение об ошибке :) Кроме того, есть такой замечательный метод - DESTROY. Вы понимаете, о чем я? Или таки не очень? :)))

> И на последок. Пока 90% программеров не станут использовать Питон, можно считать, что Питона нет :)

Тогда вообще ничего нет, кроме воздуха и отхожего места, которые используют все :)

Хорошо, сколько пакетов в CPAN использует Exception? В процентах :) Боюсь, что его игнорируют по известным причинам :) В качестве примера - Python, Java, даже, простите за выражение, C++, где объект или модуль, в котором умирает программа, не давая понять "вышестоящим" уровням, что что-то идет не так - моветон.

CybOrc
()
Ответ на: комментарий от anonymous

> DBI сам может проверки делать

Никто не спорит с этим. Но я хочу, чтобы софтина знала о результатах этих проверок и умела отдавать вразумительный ответ юзеру или предпринимать какие-то действия в зависимости от вида сбоя. Я не спорю, это можно сделать штатными средствами Перла, как и гланды можно удалять через анус...

CybOrc
()
Ответ на: комментарий от CybOrc

ИМХО

В большинсве случаев, при возникновении ошибки, лучше всего

квакнуть в лог и умереть.

Для этого и нужна die :)

Sun-ch
()
Ответ на: комментарий от CybOrc

>А сделали бы объявление переменных (а еще бы типизацию переменных для желающих посредством декораторов,

так ить ... сам сделай. на счет типизации с полпинка не скажу, а объявление - как два пальца описать - делается в одну строку с помощью декораторов. (для наводки - your_function_name.func_code.co_varnames)

anonymous
()
Ответ на: комментарий от anonymous

неплохо, хотя от так лучче

def declared(*declaration_list):
    import sys
    vars = sys._getframe(1).f_code.co_varnames
    for v in vars:
        if v not in declaration_list:
            raise DeclarationError, "local '%s' not declared" % v
    return True


def function(a,b,c):
    assert declared('a','b','c','d')
    a = 1; b = 2;
    meme = 3 # oops!

function(1, 2, 3)


при оптимизации -O или -OO assert-ы также выкидываются как и __debug__-и

anonymous
()
Ответ на: комментарий от CybOrc

Если тебя так не устраивает perl-овый синтаксис, что ж ты себя насилуешь ? Ты закрой глаза на фигурные скобки и пиши с отступами, как на питоне, и не мычи про кривой синтаксис, и всё будет в шоколаде !

> Ага, метод обработки называется "die" :D Извините, мне это не
> подходит, мне нужно получить исключение, чтобы программа могла
> определить по нему, как действовать дальше, и не повеситься при
> этом, выбираясь по вложенным eval'ам и не выкапывая псевдообъект
> подключения сообщение об ошибке :)

Аааа, так ты просто кроме исключений и die ни с чем больше и работать не умеешь. Ну так бы и сказал сразу !!! Эксепшны конечно красивое решение, но далеко не единственное, как тебе бы того не хотелось. Эксэпшны в perl-е существуют только для таких как ты, которые не мыслят perl-way. Поэтому спор пустой, а утверждать о неполноценности языка программирования из-за своей неполноценности лишь подтверждение своей неполноценности. Сорри, но это факт. Я не говорю что питон плох как язык, но меня удручает уродство его синтаксиса, которое состоит в том, что ты считаешь преимуществом - в отступах.

> Тогда вообще ничего нет, кроме воздуха и отхожего места, которые используют все :)

Ну, дорогой, я же твоими словами ответил. Это ты же назвал такое число - 90% - видимо есть некое сугубо научное обоснование что "X существует если 90% Y его используют" ? Сам придумал, да ? Думай, думай что говоришь :)

Кстати, вопрос к питоноводам в хорошем смысле этого слова. Есть ли что нить типа Template Toolkit для питона ? А что нить типа mod_perl/Apache::*, что бы доступ к Apache handler-ам прямой был ? Не воспримите как наезд и именно как здоровый интерес :)

nuBo
()
Ответ на: комментарий от nuBo

>удручает уродство его синтаксиса

ну-ну ... изи!

<quote> а утверждать о неполноценности языка программирования из-за своей неполноценности лишь подтверждение своей неполноценности </quote>

>mod_perl/Apache::*

конэчно: http://www.modpython.org/

>Template Toolkit для питона

легко и много: http://www.python.org/moin/WebProgramming

anonymous
()
Ответ на: комментарий от nuBo

> Кстати, вопрос к питоноводам в хорошем смысле этого слова. Есть ли что нить типа Template Toolkit для питона ?

Ну, HTML::Template портирован (правда, не уверен, насчет качества порта, но, поди работает). А вообще, гы-гы, есть Zope, гы-гы, и twisted с его woven / nevow. Правда, не уверен, можно ли Zope считать Template Toolkit ;-))

> А что нить типа mod_perl/Apache::*, что бы доступ к Apache handler-ам прямой был ?

mod_python. Правда, распространен еще меньше, чем mod_perl ;-). Нафиг надо, если полноценный сайт проще организовывать на Zope'е, а для поделок и специализированных вещей лучше twisted.web со всякими twisted.web.nevow. А апач в качестве раздатчика статики - явно не лучшее решение...

AlexM ★★★★★
()
Ответ на: комментарий от Sun-ch

> Есть родной ruby под виндовс, классы, сокеты, wxWidgets - усе в полный рост.

Там пока с уникодом не все гладко. Да и сторонние либы в основном версий 0.0.1alpha и далее везде. Т.е. с питоном, а тем более с перловым CPAN, никакого сравнения даже.

int19h ★★★★
()
Ответ на: комментарий от AlexM

Если поковыряться в zope(lol ;-)), то можно взять DocumentTemplate - довольно мощная штука

drd ★★
()
Ответ на: комментарий от nuBo

О великий гуру, чья мудрость сияет ярче утренней звезды. Прослышал на багдадском базаре, что лишь ты можешь помочь в моей беде. ;) Читал перловою документацию, но не нашёл как передать функции замыкание. Ещё хочу узнать когда в перле появится полноценный pattern matching? Что там со статической типизацией? А то вычисление типа операнда каждый раз когда с ним пытаются что-нибудь сделать напрягает даже современный процессор. И не надо говорить, что память дёщева а процессоры Ларри Уолл бесплатно раздаёт всем желающем. Что (и почему) произойдёт если из строки "мама мыла" вычесть строку "рама"? Вообще что такое операция "-" применительно к строкам? Какой её смысл?

ugoday ★★★★★
()
Ответ на: комментарий от anonymous

> А можно привести примеры рельного использования Python ?

Google

Batyi
()
Ответ на: комментарий от anonymous

Sorry поторопился с Google (не в движке судя по всему а для прототипирования и вспомогательного программирования используют).

BitTotrrent (http://sourceforge.net/projects/bittorrent)

WinCVS

Пара сетевых (online) игр на нём написана

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

Большинство людей (особенно пересевших с C++ или Java его хвалят.

Batyi
()
Ответ на: комментарий от nuBo

> Аааа, так ты просто кроме исключений и die ни с чем больше и работать не умеешь.

Ааа, так бы и сказал, что за 24 часа изучил Перл... Ну, предложи прогрессивный и красивый метод обработки исключительных ситуаций, не создающих мозолей на пальцах и приводящий к выходу из строя средней кнопки мыши (или клавиш Ctrl, Shift, V, C, Ins etc) :)

> Есть ли что нить типа Template Toolkit для питона ?

Про модперл уже сказали, про темплейты тоже наговорили, но не упомянули мои любимые 4Suite (http://www.4suite.org).

2 Sun-ch: Умереть и какнуть в лог, конечно, хорошо, но исключительно для мелкой поделки. Для чего-то более крупного желательно докатить-откатить существующие транзакции, корректно закрыть соединения и т.д. Кроме того, ошибка может быть и не настолько уж фатальной... Вот тебе, например, понравилось бы, если бы при попытке открыть несуществующий или закрытый для доступа файл текcтовый редактор тихо какал бы лог и умирал, унося с собой твои труды за текущий день?

CybOrc
()
Ответ на: комментарий от ugoday

> Читал перловою документацию, но не нашёл как передать функции замыкание.

Вероятно, плохо читали.

http://www.perl.com/doc/manual/html/pod/perltoot.html#Closures_as_Objects

Там и примеры есть.

> Ещё хочу узнать когда в перле появится полноценный pattern matching?

Эм-м-м, имеются ввиду регулярные выражения?

Остальное сложно комментировать ввиду полной неконструктивности.

AlexM ★★★★★
()
Ответ на: комментарий от CybOrc

А кто сказал, что смерть по die должна быть глобальной?

Умереть может потомок-процесс или тред, а родитель проанализировать код

возврата.

Парадигма исключительных ситуций не является единственной.

Sun-ch
()
Ответ на: комментарий от Sun-ch

> Умереть может потомок-процесс или тред, а родитель проанализировать код возврата.

И чем это тогда отличается от кинутого исключения? :) Практически то же самое, только названо по-другому. Ну, синтаксически не так изящно, как тот же try/catch/finally :)

CybOrc
()
Ответ на: комментарий от ugly-ugly-fucker

Функциональная революция, о необходимости которой так долго говорил луговской, свершилась. Нынче каждый злой-злой-мозго@б считает своим долгом попенять перлу на отсутствие "функциональности". Как дети, ей-богу, те тоже все, что не увидят, в рот тащут.

Только перл (равно, впрочем, как и питон) - ни разу не лисп, и не схема. Хоть, наверное, многое из "тамошних" концепций очень удобно, и может быть реализовано и "здесь".

AlexM ★★★★★
()
Ответ на: комментарий от Sun-ch

> ruby = (perl + lisp)/2

Свят-свят-свят!

Чем изгоняется? ;D

CybOrc
()
Ответ на: комментарий от Sun-ch

> ruby = (perl + lisp)/2

И где там лисп? Скорее уж это (perl+smalltalk)/2

int19h ★★★★
()
Ответ на: комментарий от AlexM

>Там и примеры есть.

Это _нормальное_ обработка замыканий? Это ещё один пример уёбищности перлового синтаксиса.

>Эм-м-м, имеются ввиду регулярные выражения?

Нет. :) под pattern matching имеется ввиду что-то вроде

let rec map3 f l1 l2 l3 =
match (l1, l2, l3) with
([], [], []) -> []
| ( a1::l1, a2::l2, a3::l3) -> let r = f a1 a2 a3 in r :: map3 f l1 l2 l3
| (_, _, _) -> invalid_arg "map3 error";;

Кстати тут и обработка замыканий тоже показана. Представь ка аналогичный перловый код. Если не понятно, то это объявление рекурсивной функции, которая принимает замыкание и 3 списка и возвращает список результатов.

# map3 (fun a b c -> a *. b ** c) [1.;2.] [3.;4.] [5.;6.];;
- : float list = [243.; 8192.]
Вот так оно работает. Не забудь добавить корректную проверку типов входных аргументов. Если в списке будет что-либо кроме float числа, то должно быть сгенерированно исключение типа
map3 (fun a b c -> a *. b ** c) [1.;2.] [3.;4.] [5.;6];;
Characters 52-53:
map3 (fun a b c -> a *. b ** c) [1.;2.] [3.;4.] [5.;6];;
^
This expression has type int but is here used with type float

>Остальное сложно комментировать ввиду полной неконструктивности.

Тема йобли с морально устаревшим языком по имени перл раскрыта не полностью?
Давай ещё раз, но по пунктам.

Каким смыслом обладает оператор "-" если в качестве операндов используются строки?

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

ну куда вы лезете со своим уйобищным верблюжым языком?

пускай его французы насилуют, благо у них пол-страны чурок арабских,
вчера еще в алжире караваны гоняли

по убожеству синтаксиса он перл с питоном вместе взятых уделывает

не говоря уже об ублюдочном смешении ФП и ООП


> Каким смыслом обладает оператор "-" если в качестве операндов используются строки?
увы, тебе этого не постичь в ближайших 555 воплощениях

ugly-ugly-fucker
()
Ответ на: комментарий от ugly-ugly-fucker

Не поддаваясь на провокации, прошу представить функцию map3 на перле. Очень интересно как оно будет выглядеть.

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

> Это _нормальное_ обработка замыканий? Это ещё один пример уёбищности перлового синтаксиса.

:-) Не, ну сильно перловый синтаксис я защищать не буду :-). Опять-таки смотри выше по треду мою позицию. Но справедливости ради нужно сказать, что пример простейшего замыкания в перле может выглядеть так:

sub test { $coderef = $_[0]; shift; $coderef->(@_); }

test(sub { print @_, "\n" }, (1, 2, 3));

В общем, не сильно далеко ушло по количеству букв от лябда-форм. Нужно, однако, понимать, что декларативных по стилю лямбда-форм в перле нет, и не будет. "Здесь вам не тут".

> Представь ка аналогичный перловый код.

Ну, не сильно сложнее, право слово. Но букв будет больше, спору нет. Но мы же не в perl golf играем? ;-)

> >Эм-м-м, имеются ввиду регулярные выражения?

> Нет. :) под pattern matching имеется ввиду что-то вроде

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

> This expression has type int but is here used with type float

"Не сыпь мне соль на рану" :-) В смысле, с typed exceptions в перле традиционно хреновато. Не в смысле, что они невозможны, но "культура речи" не способствует их применению. Все это уже было сказано, в том числе и мной, выше по треду.

> Тема йобли с морально устаревшим языком по имени перл раскрыта не полностью?

Эх... Мексика - страна с большими перспективами. И всегда ею будет. В том смысле, что лиспу уже 46 лет, а "мы все только еще будем на нем писать". А фортрану - 50, и я все еще знаю людей, которые на нём пишут. Хотя чем черт не шутит, вон MS активно взялась двигать функциональные языки, может, следующим языком "для широких народных масс" будет, скажем Хаскель. Или SML.NET ;-)

> Каким смыслом обладает оператор "-" если в качестве операндов используются строки?

А фиг его знает :-) Я что, на перле пишу в данный момент, чтобы такие глупости помнить ;-). Но, вероятно, поскольку для данной операции перл проводит numeric coercing, причем, чуть-ли не при помощи atof или аналогов, то результат будет равен такой мнемонике: atof($a_str) - atof($b_str). Да, разумеется, за использование таких фишек, да еще без обвешивания красными флажками, программистам надо обрывать ... по самые уши (а то еще обвинят в сексизме). Но это перл, понимать надо.

AlexM ★★★★★
()
Ответ на: комментарий от CybOrc

2 CybOrc:

Есть pyrex - препроцессор из python в С, там можно объявлять типизированные/статические переменные.

Ещё один способ - использовать __slot__ в новых классах или интерфейсы (в pyProtocols и, кажется, Twisted)

У Python-a есть конечно недостатки, но это НЕ синтаксис - не самая быстрая стековая VM, то что он не возвращает память OS до завершения выполнения. Но как скриптовый язык - он очень хорош.

anonymous
()
Ответ на: комментарий от AlexM

>Не, ну сильно перловый синтаксис я защищать не буду

И правильно! Но я вредный и буду придираться. ;-)

>sub test { $coderef = $_[0]; shift; $coderef->(@_); } >test(sub { print @_, "\n" }, (1, 2, 3));

Хех. Теперь осталось добавить механизм описания параметров (ну хотя бы на уровне их количества, но лучше, чтоб тип параметра также был описан). И механизм контроля соблюдения этого описания при вызовах.

>"Здесь вам не тут".

О том и речь, что в перле отсутствуют очень мощные, нужные, облегчающие программисту жизнь механизмы.

>Ну, не сильно сложнее, право слово.

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

>В смысле, с typed exceptions в перле традиционно хреновато.

Его вообще нет. :(

>Эх... Мексика - страна с большими перспективами. И всегда ею будет.

;( Попса правит миром, и я не знаю как это изменить.

>Но это перл, понимать надо.

Грешно обижать убогого? ;)

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

> Хех. Теперь осталось добавить механизм описания параметров

man perlsub

> ну хотя бы на уровне их количества, но лучше, чтоб тип параметра также был описан).

Он описан. Для _перловых_ типов (то есть, скаляр, список, хэш, кодереф и ссылки).

> И механизм контроля соблюдения этого описания при вызовах.

alex@pyro ~ $ perl -e 'sub test($) { print @_,"\n" }; test(1,2,3);'
Too many arguments for main::test at -e line 1, near "3)"
Execution of -e aborted due to compilation errors.
alex@pyro ~ $ _

Правда, нужно помнить о [нездоровой] любви перла к autocoercing, поэтому вызовы test((1,2,3)) и test([1,2,3]) являются законными, результат оставлен как упражение для читателя. Только, умоляю, получив его, не спешите кричать "нэ бачу логыки!". Там все правильно. Хотя и странно :-)

> > В смысле, с typed exceptions в перле традиционно хреновато
> Его вообще нет. :(

Не, ну как есть. Даже вот такое работает (man Error) :-)):

try {
do_some_stuff();
die "error!" if $condition;
throw Error::Simple -text => "Oops!" if $other_condition;
}
catch Error::IO with {
my $E = shift;
print STDERR "File ", $E->{'-file'}, " had a problem\n";
}
....

Другое дело, этим практически никто не пользуется (в частности, никто из STDLIB и типичных модулей.

> >Но это перл, понимать надо.

> Грешно обижать убогого? ;)

Нет. Глупо пытаться привести все к собственной системе ценностей.

Реализация map3 будет чуть позже, вероятно

AlexM ★★★★★
()
Ответ на: комментарий от AlexM

>man perlsub

tnx, Век живу -- век учусь.

>Он описан. Для _перловых_ типов (то есть, скаляр, список, хэш, кодереф и ссылки).

И это нормальная система типов? Да это просто неприлично.

Кстати а как в перле определить свой тип данных? Например бинарное дерево кортежей float * int list * (int -> float list).

>Правда, нужно помнить о [нездоровой] любви перла к autocoercing, поэтому вызовы test((1,2,3)) и test([1,2,3]) являются законными, результат оставлен как упражение для читателя. Только, умоляю, получив его, не спешите кричать "нэ бачу логыки!". Там все правильно. Хотя и странно :-)

Хм, такое ощущение, что перл писала женщина. ;-)

>man Error

No manual entry for Error

>Другое дело, этим практически никто не пользуется (в частности, никто из STDLIB и типичных модулей.

Почему?

>Нет. Глупо пытаться привести все к собственной системе ценностей.

Я привык к вкусным пряникам, и не желаю отвыкать. Вот такая я скотина.

*ugoday уходит спешно учить caml4p (окамловый препроцессор) чтобы потом докапываться до перлистов вопросами "А когда в перле появятся макросы?" :-D

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

> И это нормальная система типов? Да это просто неприлично.

Неприлично кому? Только не надо "про современные языки программирования, семимильными шагами идущие по планете".

> Кстати а как в перле определить свой тип данных?

_Тип_ - никак. Классы (построенные на перечисленных базовых типах) - ну, man perltoot

> >Другое дело, этим практически никто не пользуется (в частности, никто из STDLIB и типичных модулей.

> Почему?

Вот именно потому, что

> No manual entry for Error

Error - это модуль с CPAN'а. Не слишком популярный.

> Я привык к вкусным пряникам, и не желаю отвыкать. Вот такая я скотина.

http://www.fast-rewind.com/thestuff.htm ? ;-)

Да, я подумал. Пожалуй, некоторые из требований к map3 достаточно сложно реализовать в перле. В частности, требование на обязательность плавающей точки. То есть, можно, конечно, доп проверки организовать, но это сильно утяжелит конструкцию. А так - голимая императивщина будет, с циклом по индексу :-/

AlexM ★★★★★
()
Ответ на: комментарий от ugoday

> *ugoday уходит спешно учить caml4p (окамловый препроцессор) чтобы потом докапываться до перлистов вопросами "А когда в перле появятся макросы?" :-D

man perlfilter

AlexM ★★★★★
()
Ответ на: комментарий от AlexM

Только за "перлиста" можно и в глаз схлопотать при личной встрече ;-)

AlexM ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.