wizzard: (Default)

немного магии, несколько смутивших меня частных случаев - и у нас есть structural typing!

interface ISomething
{
int A {get;set;}
}

int x = (new{ A=5} ).Cast<ISomething>().A; // работает :)

а также __get__, __set__, __method_missing__ и прочие подобные плюшки.
в C# 2, не 4, прошу заметить :)
чего б еще такого соорудить...
 

wizzard: (Default)

давно хотел с ними поиграться, да все некогда было.
офигенная штука. много раз до этого пробовал писать разные парсеры, руками и тулзами – и всё какое-то жутко раковое, многослойное, громоздкое, етц. или требует выворачивать мозг под ограничения грамматики.

а тут пишется и пишется... мысли о DSL’ях резко стали на порядок реалистичнее :)
да что там говорить, парсер + генератор кода для “стековой VM” умещаются на страницу кода вместе с обвязкой!

microbasic

а, да, еще есть другие PEG (Program Expression Graphs), на них тоже надо обязательно посмотреть…

wizzard: (Default)

мне тут напомнили про некстати пропадающие\вайпающиеся сервисы, и я решил сделать парсер друзей из вконтакта. сохраняет в JSON, потом попробую это в свою адресную книгу импортировать. пока вылезла проблема - данных много, выбрасывать жалко, непонятно что делать :)

wizzard: (Default)
ура!!!!

оно заработало!!!! теперь дело за малым, написать всё остальное %)
а сейчас можно и спать ложиться...

между делом, соорудил собственный value-type (копирует себя при присваивании) в Python'e ^_^

(наверное, это совсем black magic, но в противном случае если method привязан (bound) более чем к одной инстанции класса, то при попытке сериализации оно нафик рушится. поэтому понадобилась фигня которая при присваивании себя копирует и прибиндивает копию. еще б разобраться, как прикрутить новый контекст замыканий, а то часть имен отваливаются и потом "внезапно" got NoneType, expected 'str', и т.д.) Но пока и так сойдет.


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

wizzard: (Default)

выспавшись и подумав, решил написать пока прототип на Stackless, чтоб яснее представлять себе,
что нужно – и без чего можно обойтись.

там видно будет.

wizzard: (Default)
ImportError: cannot import module win32api. все бы было хорошо, если бы винда не была 64-битной.

setuptools работает после доработки напильником, nevow не работает. плохо.

UPD: помогает установка руками pywin32
wizzard: (Default)
если писать что-то на Python'e или F#, очень хочется иногда посмотреть, как же расставлены пробелы.

Shortcut: Ctrl+R, W. Показывает пробелы, табы и EOF. Особенно полезно в сочетании с режимом Enable Virtual Space.

upd: оказывается, есть еще Ctrl+E, S

Profile

wizzard: (Default)
wizzard

January 2019

S M T W T F S
  12 345
6789101112
1314 1516171819
202122 23242526
2728293031  

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Apr. 23rd, 2025 02:50 pm
Powered by Dreamwidth Studios