[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Программирование на функциональных языках - как научить?



On Sat, Aug 22, 2009 at 01:34:53AM +0400, Artem Chuprina wrote:
> Alexey Pechnikov -> debian-russian@lists.debian.org  @ Sat, 22 Aug 2009 00:29:31 +0400:
> 
>  >> > atoi() в случае ошибки всегда возвращает 0. Собственно, других 
>  >> > возможностей просто нет.
>  >> 
>  >> Мда.
>  >> 
>  >> isinnet( '127.0.0.1', '127.0.0.0/8x' )
> 
>  AP> Отлично, добавил еще несколько тестов и код поправил.
> 
>  AP> Еще обнаружил, что вот такой вызов возвращает значение:
>  AP> SELECT NETLENGTH('a192.168.1.0/28');
>  AP> 16
> 
>  AP> В принципе, все верно, т.к. определение размера сети производится 
>  AP> только по маске, но раз уж мы взялись добавлять везде проверки 
>  AP> корректности адреса и маски, то поправил и это.
> 
> Сэнта, помнится, очень опасалась использовать тикловые программы по той
> же причине, по которой я опасаюсь использовать питоновские - вроде и сам
> язык неплох, но как-то пишут на нем исключительно люди, патологически не
> способные сразу написать без ошибок...
> 
> Вот казалось бы - ну всего-то нужна пара проверок.  Что переданный
> параметр - валидное строковое представление IP-адреса или сети.
> Т.е. что строка имеет вид число.число.число.число[/число], каждое из
> первых четырех чисел - от 0 до 255, последнее - от 0 до 32, и у сети
> единицы могут быть только в маскированных разрядах.
> 
> Ну хорошо, можно поначалу эту проверку забыть.  Или забить на нее
> сознательно.  Но КАК можно ИСПРАВИТЬ несколько ошибок с некорректными
> входными данными и так и не вставить ЭТУ проверку (которая сделает
> невозможной следующую ошибку такого же типа)?  Это какой же фигурности
> должны быть заплатки!?

Угу. Я ему на то же самое уже указывал, но он не заметил.

-- 
Stanislav


Reply to: