Re: Программирование на функциональных языках - как научить?
Hello!
On Friday 21 August 2009 02:37:44 Stanislav Maslovski wrote:
> То есть, код будет весьма интересно "работать" даже в случае
> числа в третьем аргументе:
>
> select isinnet( '172.16.1.23', '172.16.1.0', '56' ) например ;-)
>
> > Следовало бы вернуть NULL, что есть более концептуально верно.
>
> Концептуально верно будет, имхо, переписать.
Да, проверок входных данных явно не хватало :-) Добавил, заодно код упростил,
а то вложенные if не есть хорошо. Заодно сделал проверку типа данных:
sqlite> select isinnet( '172.16.1.23', '172.16.1.0', 56 );
sqlite> select isinnet( '172.16.1.23', '172.16.1.0', 32 );
0
sqlite> select isinnet( '172.16.1.23', '172.16.1.0', '32' );
sqlite> select isinnet( '172.16.1.23', '172.16.1.0', '255.255.255.0' );
1
sqlite> select isinnet( '172.16.1.23', '172.16.1.0', '255.255.255.255' );
0
Ну и дописал пару-тройку тестов. Новую версию и деб-пакет выложил.
Best regards, Alexey Pechnikov.
http://pechnikov.tel/
Reply to: