- *programming *haskell *c++Жуйк, тут в соседнем треде поднялся такой вопрос — что лучше, функциональщина в императивном коде или императивные мысли на хаскеле?
By [15:39:00] <rexim> Ха, то что у тебя в инперативном коде много функциональщины тебе похуй. А вот то что в хаскелях мысли императивны, уже что-то не то. :)
Replies (9)
- @0xd34df00d:@Cirno Нужно сформировать Data.Map.Map по имеющейся Data.Map.Map с теми же, считай, данными, лишь немного измененными, учитывающими изменения на предыдущих шагах, причем.
Мне не дает покоя использование M.fold с мапой в роли аккумулятора, чтобы учесть уже измененные вещи, а лень не дает заюзать M.mapWithAccum или осилить модифицируемые in-place-структуры. - @PineappleZombie:@0xd34df00d Ты сигнатуру требуемой функции напиши
- @0xd34df00d:@PineappleZombie А как в гохаце, кстати, узнать тип вложенной функции? Которая в where-блоке. Или ваще к ней обратиться.
- @PineappleZombie:@0xd34df00d Не знаю. Выноси на top level
- @0xd34df00d:@PineappleZombie Хм. Короче, есть M — алиас для Data.Map.
Есть nm :: M.Map IP ONodeInfo
st :: SimStateInfo
reqer :: SimStInfo -> ONodeInfo -> (NodesMap, [String]) -> (NodesMap, [String])
Сейчас все сделано let (nm', logs) = M.fold (reqer st) (nm, []) nm - @PineappleZombie:@0xd34df00d Ну так без свёртки обойтись не получается. А неочевидный порядок свёртки не может испортить всё?
- @0xd34df00d:@PineappleZombie Нет. Главное — чтобы на следующих шагах учитывались предыдущие, в каком порядке — неважно.from idead, 10 months ago, in reply to /9