"Mason elegantly solves the problem of large-scale web development, giving Amazon.com web developers the power of industry-standard Perl and the simplicity of re-usable components. This has made it easy to manage and evolve a very large mission-critical global codebase, and has halved the ramp-up time for new developers."
>>Ну это ты чувак ваще загнууул. Ты где работаешь? Небось напару с >>лохматым дезигнером сайты лепишь показывающие прайс-лист из mysql'я? Нет, я работаю админом. Мускулем я правда пользуюсь, но не для прайсов. Ще я юзаю MSSQL и Оракл. И если б не было перла, я б наверно офигел уже давно. На чем еще можно быстро накидать полезный утиль?
Во первых сам ты уебище, а во вторых, напиши мне плиз, убирание строк из массива с посторяющимися числами в любом другом языке так коротко и просто без дополнительного использования подключаемых библиотек:
>> Perl великая сила! многим языкам у него учиться и учиться....
>Чему учиться? Уёбищному синтаксису?
Тебе, уебищному онанимусу, учиться бесполезно, раз твоего интеллекта не хватило даже на синтаксис, который и правда, посложнее чем у других языков. Посложнее он потому, что это единственный язык со встроенными __НА_УРОВНЕ_СИНТАКСИСА__ типами данных МАССИВ (именно массив, а не индексированный указатель), ХЭШ (аналогично) и РЕГУЛЯРНОЕ_ВЫРАЖЕНИЕ.
Именно этот синтаксис, который некоторым оказывается не по уму, и позволяет писать очень компактно, быстро и ясно. Именно эта комфортность программирования и доставляет так много радости любителям перла. Но те, кто безнадежно споткнулся о синтаксис этого не поймут никогда. Мне искренне жаль таких ...
> убирание строк из массива с посторяющимися числами в любом другом языке так коротко и просто без дополнительного использования подключаемых библиотек:
> Во первых сам ты уебище, а во вторых, напиши мне плиз, убирание
> строк из массива с посторяющимися числами в любом другом языке так
> коротко и просто без дополнительного использования подключаемых
> библиотек:
> @uniq = grep {!$_{$1} if m!\d\d!} @mass;
Ну ты и глупая собака. Это ты называешь нормальным языком?!!
geek, ёптыть твою. ;-)
Несколько тысяч строк такой хуятени, и у тебя мозги наберкень будут.
Так "коротко и просто". Ню-ню. Мало ты языков программирования видел.
насамом деле строка grep {!$_{$_}++} @mass убирает повторяющиеся строки из массива, а строка grep {!$_{$1}++ if m!(\d\d)!} @mass убирает строки с любым содержимым с повторяющимися двузначными числами
А пересечение двух массивов на других языках как?
Постановка задачи:
Есть два списка, каждый из которых содержит неповторяющиеся элементы, требуется узнать, какие элементы присутствуют в обоих списках(пересечение), присутствуют в одном и отсутствуют в другом (разность) или хотябы в одном из списков
симметричная разность, это набор всех элементов, являющихся членами либо @A, либо @B, но не обоих сразу. Простая разность - набор всех элементов @A, отсутствующих в @B.
вот такие вот вещи умеет perl (конечно, их умеет и C/C++/Java/Pythoon/Ruby/Tcl/Tk/C#/Ada/Awk/Sed/, но вопрос, какой кровью :)
"Несколько тысяч строк такой хуятени" А если форкнуться грамотно и разбить программу на кусочки, то несколько тысяч строк хеятени превратятся в несколько сот строк... Хотя чтобы форк на перле грамотно сделать (пул форкающихся серверов с _правильным_ отловом зомби), надо перловый IPC по минимуму год прогать... ИМХО.
вот такие вот вещи умеет perl (конечно, их умеет и
C/C++/Java/Pythoon/Ruby/Tcl/Tk/C#/Ada/Awk/Sed/,
но вопрос, какой кровью :)
Python 2.3:
Here's a simple example:
>>> import sets
>>> S = sets.Set([1,2,3])
>>> S
Set([1, 2, 3])
>>> 1 in S
True
>>> 0 in S
False
>>> S.add(5)
>>> S.remove(3)
>>> S
Set([1, 2, 5])
>>>
The union and intersection of sets can be computed with the union()
and intersection() methods; an alternative notation uses the bitwise
operators & and |. Mutable sets also have in-place versions of these
methods, union_update() and intersection_update().
>>> S1 = sets.Set([1,2,3])
>>> S2 = sets.Set([4,5,6])
>>> S1.union(S2)
Set([1, 2, 3, 4, 5, 6])
>>> S1 | S2 # Alternative notation
Set([1, 2, 3, 4, 5, 6])
>>> S1.intersection(S2)
Set([])
>>> S1 & S2 # Alternative notation
Set([])
>>> S1.union_update(S2)
>>> S1
Set([1, 2, 3, 4, 5, 6])
>>>
It's also possible to take the symmetric difference of two sets. This
is the set of all elements in the union that aren't in the
intersection. Another way of putting it is that the symmetric
difference contains all elements that are in exactly one set. Again,
there's an alternative notation (^), and an in-place version with the
ungainly name symmetric_difference_update().
>>> S1 = sets.Set([1,2,3,4])
>>> S2 = sets.Set([3,4,5,6])
>>> S1.symmetric_difference(S2)
Set([1, 2, 5, 6])
>>> S1 ^ S2
Set([1, 2, 5, 6])
>>>
There are also issubset() and issuperset() methods for checking whether one set is a subset or superset of another:
>>> S1 = sets.Set([1,2,3])
>>> S2 = sets.Set([2,3])
>>> S2.issubset(S1)
True
>>> S1.issubset(S2)
False
>>> S1.issuperset(S2)
True
>>>
Тупо выдрал из доки.
Где сдесь кровь?
>Есть два списка, каждый из которых содержит неповторяющиеся элементы, требуется узнать, какие элементы присутствуют в обоих списках(пересечение), присутствуют в одном и отсутствуют в другом (разность) или хотябы в одном из списков
одно дело книжка, а другое сам пишешь... ты пробовал? а вот я пробовал... через месяц только воткнул, что к чему, с этой книжкой, но сам щас без книжки врядли что-то напишу...
И еще есть важный минус, который неперечеркивает разве что цпан - перл просто сосет по скорости с любым нескриптовым языком...
> А пересечение двух массивов на других языках как?
> foreach $e(@a) {$union{$e}=1}
Кхе-кхе ;)
В пхп это делается так:
array_intersect()
array_merge()
А как на счет array_diff() ? Работа с массивами в перл - полнейший отстой. Чего стоит несоблюдение последовательности обхода ключей
в массиве в цикле foreach. Костыли, костыли... Весь язык - один большой
костыль.
кто такой перл (питон/пхп/хтмл) программист? вот перл (питон/пхп/хтмл) кодер, это я понимаю. а программист, ему язык пофиг, какой надо тот и использует.