metaclass: (Default)
[personal profile] metaclass
Спор про F# (там рекаптча если шо)

Товарищ прицепился к тому, что в F# нельзя написать функцию, которая бы по индексу поля в кортеже возвращала бы значение поля.

Т.е. вообще-то ее написать можно, через Reflection, но 1) это все только благодаря дотнету, но никак не системе типов; 2) это противоречит духу статической типизации и является способом стрелять себе в ногу.

Никак не могу человеку объяснить разницу между статической типизацией и натягиванием совы на глобус реализацией динамической типизации поверх языка со статической, чем занимаются 90% либ доступа к БД (все эти ADO.NET, ODBC, JDBC, BDE и прочая).

Date: 2010-08-20 10:21 am (UTC)
From: [identity profile] plumqqz.livejournal.com
"-- Ты что же это, с ума сошел? -- кротко спросил Ипполит Матвеевич и двинулся к выходу.-- Обалдеешь ты среди гробов."

Date: 2010-08-20 10:41 am (UTC)
From: [identity profile] metaclass.livejournal.com
Да вот, блин - каждое утро открываешь ЖЖ, а там - то у народа функции с переменным числом параметров со статической типизацией не получаются, то вот кортеж в БД и кортеж в статической системе типов F# друг с другом не хотят спариваться без гамака и скафандра :)

Date: 2010-08-20 10:47 am (UTC)
From: [identity profile] plumqqz.livejournal.com
Так они и не спарятся. "В следующий запойный период Полесов изготовил стационарный двигатель, который был очень похож на настоящий, но не работал".

Date: 2010-08-20 10:57 am (UTC)
From: [identity profile] metaclass.livejournal.com
Не, теоретически спарить можно, я как раз сейчас чем-то подобным занимаюсь.
Но без метапрограммирования в любой его форме не спарятся никак.

Date: 2010-08-20 10:58 am (UTC)
From: [identity profile] plumqqz.livejournal.com
Вот и не лень же вам, а?

Date: 2010-08-20 11:16 am (UTC)
From: [identity profile] metaclass.livejournal.com
Вот что мне точно лень - так это писать FieldByName и ParamByName вручную, тем более что оно теоретически алгоритмизируется.

Date: 2010-08-20 11:18 am (UTC)
From: [identity profile] plumqqz.livejournal.com
Вот в данном случае вместо написания вручную требуется написание вножную лыжами стоя на голове в гамаке. В качестве циркового номера это, без сомнения, много зрелищней.

Date: 2010-08-20 11:50 am (UTC)
From: [identity profile] metaclass.livejournal.com
Вообще причина в следующем: если писать "как обычно" - это очень быстро надоедает, устаешь и начинаешь делать ошибки. Ну и вообще занятие тупой повторяющейся работой ломает мозг.

Использовать кодогенерацию сложнее, но результат гарантированно содержит меньше ошибок и более полезен для ума :)

Date: 2010-08-20 11:51 am (UTC)
From: [identity profile] plumqqz.livejournal.com
Все не нагенерируешь, увы.

Date: 2010-08-20 11:58 am (UTC)
From: [identity profile] metaclass.livejournal.com
Так все и не надо - только то, что поддается генерации без извращений.

Date: 2010-08-20 12:02 pm (UTC)
From: [identity profile] plumqqz.livejournal.com
И вообще лучше быть богатым и здоровым, чем бедным и больным :-)

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 21st, 2025 10:14 am
Powered by Dreamwidth Studios