【发布时间】:2015-01-09 02:35:06
【问题描述】:
给定一个元素序列,我想找到每个元素的所有直接后继者的列表:
例子:
"AABAABAAC"
应该返回类似(使用Data.Map):
fromList [('A',"ABABA"), ('B',"AA"), ('C', "")]
我知道fromListWith 函数,但我似乎无法正确理解列表:
succs :: Ord a => [a] -> M.Map a [a]
succs xs = M.fromListWith (++) [(x, ???) | ??? ]
【问题讨论】:
-
为什么不是
ABAABAAC的继任者A?ABABA的继任者A在哪里?编辑:好的,我明白,但请编辑你的问题。写“每重复一次” -
很抱歉不清楚。我在考虑直接继任者。我认为该序列是一系列状态
A,B,C和两个相邻状态,这意味着从一个状态到另一个状态的转换。序列将是这样的:A->A->B->A->A->B->A->A->C.
标签: haskell list-comprehension