F#

Aug. 19th, 2010 05:00 pm
109: (Default)
[personal profile] 109
начал изучать F# сегодня после обеда. похоже, что к концу дня уже и закончил. никакой дополнительной гибкости по сравнению с C# не наблюдается. взять tuples. ок, я могу сматчить первый элемент как (x, _), аналогично head в списке. а как мне сматчить остаток (e.g. tail)? или как итерировать по тупелу заранее неизвестного типа? или как динамически создать тупел, имея, скажем, список типов элементов? а ведь без перечисленного мной ничего осмысленно реляционного не написать. вот у них ничего не пошевелилось в душе, когда они хуярили эти конструкторы?

Tuple(T1)
Tuple(T1, T2)
Tuple(T1, T2, T3)
Tuple(T1, T2, T3, T4)
Tuple(T1, T2, T3, T4, T5)
Tuple(T1, T2, T3, T4, T5, T6)
Tuple(T1, T2, T3, T4, T5, T6, T7)
Tuple(T1, T2, T3, T4, T5, T6, T7, T8)


bonus: Action(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)

видимо, Билл Гейтс сказал, что 16 параметров должно быть достаточно для любого метода.
From: [identity profile] plumqqz.livejournal.com
Я так понимаю, тупль этот существует исключительно в виде платоновской идеи, да и то лишь в момент компиляции, так что попытки в рантайме получить что-то от него абсолютно бессмысленны - невозможно получить пятый элемент того, чего нет.
From: [identity profile] metaclass.livejournal.com
В рантайме он существует, т.е. можно от объекта вызвать GetType() и получить ссылку на рунтайм-описание типа.
From: [identity profile] plumqqz.livejournal.com
Ну, поди, вот во время компиляции и прописывается то, что должно вернуть GetType(). Эдакий перекормленный макропроцессор.
From: [identity profile] metaclass.livejournal.com
Ага, практически оно так и есть.

(no subject)

Date: 2010-08-20 11:22 pm (UTC)
From: [identity profile] 109.livejournal.com
> невозможно получить пятый элемент того, чего нет

это глубокая мысль, ничуть не уступающая другим глубоким мыслям типа "невозможно читать из потока после того, как он кончился", или "невозможно читать из массива по индексу, который out of bounds".

(no subject)

Date: 2010-08-20 11:27 pm (UTC)
From: [identity profile] plumqqz.livejournal.com
Ну глубокая - не глубокая, но кое-кто пытается. Я так думаю - пусть и дальше пытается, не мое это собачье дело.

Profile

109: (Default)
109

March 2019

S M T W T F S
     12
3456789
101112131415 16
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags