lomeo: (лямбда)
[personal profile] lomeo
Я вот жаловался [livejournal.com profile] thesz, что в Haskell нет аналога partial function в Scala, чтобы можно было легко строить конструкции аналогично Erlang'овского receive (я говорю о синтаксисе). Однако механизмы есть. Правда, я нашёл пока только для IO.

import Prelude hiding (catch)
import Control.Exception

e `patternFail` h = e `catch` \(PatternMatchFail _) -> h

apply handlers = \x -> foldl1 patternFail (map ($x) handlers)

-- *Main> apply [\[1]->putStrLn "a", \[2]->putStrLn "b", \[3]->putStrLn "c"] [2]
-- b


Список здесь всего лишь пример, можно сделать и по другому (varargs?)

Даешь в месяц по контесту

Date: 2008-07-22 11:52 am (UTC)
From: [identity profile] dimiii.livejournal.com
Дмитрий, как участие в ICFPC-2008 благотворно повлияло на посто - плодовитость! А тут ещё code jam приближается.... )

По существу: вы делали замеры производительности? Я сужу по "вершкам", но вижу логика строится на исключениях, насколько это дёшево?

Заодно спрошу о портеровском стеммере, давно собирался. Я видел в репозиториях вашу версию для хаскела. А что скажете про использование стемминга для русского языка? Мне он показался не очень хорошим, но я и оценивал "невооружённым" глазом.
From: [identity profile] lomeo.livejournal.com
Спасибо :) CodeJam уже не осилю, семья, работа...

Замеры производительности не делал совершенно - я даже код писал в интерпретаторе, в файлах у меня ничего нет :-( Исключения, это, конечно не явный case так что должно быть медленнее - насколько - не задумывался, решал совсем другую задачу:

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

Портеровский стеммер - это кажется вообще моя первая программа на Хаскеле. Мне понравился язык, я захотел чего нибудь на нём написать, а тут как раз были задачи по индексации и я наткнулся на сайт Портера. Как он ляжет на русский язык не могу сказать определённо. Я совершенно некомпетентен в этом вопросе, думаю, что аналогичный можно для русского написать, только суффиксы, приставки, окончания будут другими :) Хотя может быть стем в русском смотрят совсем по другому - тут можно много рассуждать, лучше поискать/почитать.

Ко мне можно на ты ;-)
From: [identity profile] dimiii.livejournal.com
>>Портеровский стеммер - это кажется вообще моя первая программа на Хаскеле.
Ах вот что - стеммер у тебя для английского. Я тогда просто обратил внимание на автора и почему - то решил, что это реализация для русского языка. Рускоязычный я пробовал - слишком много overstemming´а.

Profile

lomeo: (Default)
Dmitry Antonyuk

September 2025

S M T W T F S
 123456
78910111213
14 151617181920
21222324252627
282930    

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 26th, 2026 07:34 pm
Powered by Dreamwidth Studios