Не все закрытия являются лямбдами, и не все лямбды закрытия. Оба - функции, но не обязательно таким образом мы привыкли знать.
лямбда А является по существу функцией, которая определяется встроенная, а не стандартный метод объявления функций. Лямбды могут часто раздаваться как объекты.
закрытие А является функцией, которая включает ее окружающее состояние путем ссылки на поля, внешние к ее телу. Вложенное состояние остается через вызовы закрытия.
На объектно-ориентированном языке, закрытия обычно обеспечиваются через объекты. Однако некоторые языки OO (например, C#) реализуют специальную функциональность, которая ближе к определению закрытий, обеспеченных просто функциональные языки (такие как шепелявость), которые не имеют объектов включить состояние.
то, Что интересно, - то, что введение Лямбд и Закрытия в C# приближают функциональное программирование к основному использованию.
В этом упражнении grep
, sed
, и awk
будут Ваши друзья.
Вот подсказка для первой проблемы: Парсинг IP от строки спама
Это будет работать, если каждый IP будет на нем, собственная строка, окруженная мусором, с, входит в систему каждая сторона чисел.
'тест' является просто файлом, я вставил Ваш пример в [1 110]
grep -nPo '@\d{1,3}@' test | sed 's/@//g'
grep:-n предварительно ожидает номер строки, P позволяет, Вы для использования Perl regex, o возвращаете только подобранную часть.
regex соответствовал любой группе цифр длины 1-3 окруженных знаки
Sed: снимает знак путем замены их ничем
вывод будет мы быть:
1:192
1:168
1:90
1:1
, Где 1 номер строки. Я оставил его на там, потому что можно использовать awk
, чтобы найти части с числами согласующего отрезка длинной линии и связать их для создания IP-адреса.