всю магию можно переписать на дельфи, но придётся соблюсти много бюрократии
например такой же текст "A .-..." перевести в массив StringList умеет TPerlRegexp - метод scan('[^\s]')
получится список со всеми строками ['A', '.-', 'B', '-...']
потом взять сформировать
ассоциативный массив из Stringlist например: Values['A'] := '.-'; а поиск он сам поддерживает...
Цитата:
На каждое простое действие разрабатывать процедуры/функции?
|
кстати это и присходит (в руби точно), то есть появилось желание узнать что-нибудь новое про то, что умеет даже обычный массив, поискал и, нашёл какое-нибудь необычное применение, которое начинаешь использовать
но супер-функций точно нет, есть уйма разных методов объектов (даже массив - объект), 2/3 методов принимают или 0 или 1 аргументов, только один - 2 аргумента, оставшиеся - массив аргументов (могу привести код который это считает
)
вобще можно писать даже for циклы, другое дело что их очень редко используют, просто потому что без них можно обойтись и код будет проще, вместо той магии ассоциативный массив с пробелом можно было записать так {'A' => '.-', ' ' => '...'}, но с магией читабельность лучше => используется магия, но можно и скомбинировать
по поводу читаемости и синтаксиса к руби претензий быть не может, просто мыслишь не в переменных и циклах, например:
text.upcase.chars.map { |char| MORSE[char] or unknown(char) }.join
текст преобразовать к верхнему регистру, разбить на массив символов, каждый элемент массива заменить значением из ассоц.массива MORSE или если совпадения не найдено то вызвать функцию unknown, склеить полученный массив в строку
{ } в дельфи выглядело бы как callback функция, указатель на которую передаётся функции map
а чистый sql можно забыть если не надо использовать специфичных для отдельной БД функций
но не агитирую, из минусов: постоянно приходится пользоваться поиском, сильно зависишь от интернета, нет ide, книжки устаревают быстрее