lomeo: (лямбда)
[personal profile] lomeo
У [livejournal.com profile] _darkus_ я чуть чуть порасписывал двусвязные списки. Мне понравилось решение к которому я пришёл. Хотя у Окасаки наверняка уже есть что то подобное.

Date: 2006-12-12 11:53 am (UTC)
From: [identity profile] thesz.livejournal.com
Посмотрел.

Моё кунфу не дотягивает. ;)

У тебя, вон, mdo уже используется. ;)

Date: 2006-12-12 12:22 pm (UTC)
From: [identity profile] lomeo.livejournal.com
Да ну! mdo - это всего лишь что то вроде letrec только для do.
Кстати, с mdo я не первый. В общем как всегда. В самом пропозале mdo (A recursive do in Haskell (http://citeseer.ist.psu.edu/erk02recursive.html)) приводится похожий пример :-/

Но вот идея с одновременным использование 2 list и mutable nodes представлений мне нравится. Очень эффективно получается. Хотя наверняка тоже до меня кто то придумал.

Date: 2006-12-12 03:48 pm (UTC)
From: [identity profile] rvp74.livejournal.com
Если реализовывать стрелки SP m a b, то loop потянет за собой требование на использование mdo

Date: 2006-12-12 03:59 pm (UTC)
From: [identity profile] lomeo.livejournal.com
Что такое стрелки SP? И, честно говоря, сомневаюсь, что есть что то требующее использование mdo. Обычно последующую привязку можно сделать отложенными вычислениями.

Date: 2006-12-12 04:05 pm (UTC)
From: [identity profile] rvp74.livejournal.com
всмысле SF:

newtype SF m a b = SF { runSF :: a -> m (b, SF m a b) }

loopSF sf = SF $ \a -> mdo ((c,d),sf') <- runSF sf (a,d)
return (c,loopSF sf')

Profile

lomeo: (Default)
Dmitry Antonyuk

April 2024

S M T W T F S
 123456
7891011 1213
14151617181920
21222324252627
282930    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 13th, 2025 09:21 am
Powered by Dreamwidth Studios