metaclass: (Default)
[personal profile] metaclass
Таки дорвался использовать Monadic Parser Combinators. Достаточно удобно, можно думать категориями Parsec-а, но ошибки компилятора или стеки вызовов при рунтайм-ошибках выглядят ужасающе.
Кстати, по моему, там TValue[] в Rep и Rep1 надо на IEnumerable заменить

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

Теперь думаю, куда бы это контекст со списком парсеров(которые изменяются по ходу разбора) засунуть. Тут подсказали стрелки, но как оные стрелки впихнуть в дотнет и LINQ это отдельный вопрос. Наверно, имеет смысл список парсеров (вернее map идентификатор -> парсер) поселить вместе со входным списком токенов и наколбасить хитрых парсеров, которые кроме того, что потребляют токены, еще и меняют список.

Ну и еще совсем непонятно, как это все будет работать в отсутствие ленивости и оптимизации хвостовых вызовов.

Date: 2010-01-09 11:55 pm (UTC)
From: [identity profile] j-sheridan.livejournal.com
Там все просто :) Я гдето за полчаса (http://j-sheridan.livejournal.com/151331.html) разгадал :)

Date: 2010-01-10 01:18 am (UTC)
From: [identity profile] guamoka.livejournal.com
Ну деццкий сад же ведь:-) Как чувствовал.


Roll #10.

"...The name of the game is Petals Around the Rose?"

"Right, and the name is significant."

Date: 2010-01-10 09:28 am (UTC)
From: [identity profile] metaclass.livejournal.com
Ага, разгадал. Что-то с утра как-то быстро понятно стало.

Date: 2010-01-10 10:56 am (UTC)
From: [identity profile] guamoka.livejournal.com
Угу. Меня порадовал нестандартный подход Б. Гейтса- просто запомнить комбинации. Я бы лично Билла проверил (на всякий случай): добавил бы еще пять костяшек и посмотрел, что он скажет;-)

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

Date: 2010-01-10 12:10 pm (UTC)
From: [identity profile] guamoka.livejournal.com
Ну, вообще говоря да. К решению можно прийти, определив статистически корреляцию между ответами и выпадающими костями. Думаю, тоже легко покажет, куда надо смотреть.

Date: 2010-01-10 07:52 am (UTC)
From: [identity profile] demon-gloom.livejournal.com
Была задачка где показывалось число и спрашивалось 863458 = 5 и типа эту задачку любой первокласник решал, т.е. мог обьяснить почему. Решение было в колечках. 8 - 2 колечка, 6 - 1 и т.д. В лепестках тот же принцип.

Date: 2010-01-10 10:57 am (UTC)
From: [identity profile] guamoka.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 Oct. 5th, 2025 07:45 pm
Powered by Dreamwidth Studios