我有一个带有整数和匿名变量的List,我试图找到一个特殊值的索引.问题是我用它nth1/3来找到索引Prolog为匿名变量分配值,因此我也找到了索引.
例如:
List = [1,\_,1],我想要的结果是X = 1, X = 3从nth1(X,List,1),而是说之前,我X = 1, X = 2, X = 3.
我定义了自己的数据类型.
data Row = A | B | C deriving (Show,Eq,Ord)
Run Code Online (Sandbox Code Playgroud)
问题是,如果有更优雅的方式来定义我的范围而不是这个?
instance Ix Row where
range (A,A) = [A]
range (A,B) = [A,B]
range (A,C) = [A,B,C]
range (B,B) = [B]
range (B,C) = [B,C]
range (C,C) = [C]
range _ = []
Run Code Online (Sandbox Code Playgroud) 我有一个功能
move :: Move -> Node -> Maybe Node
Run Code Online (Sandbox Code Playgroud)
在哪里我可以使用我的绑定monad来获得一个Maybe Node
(return n >>= move m)
Run Code Online (Sandbox Code Playgroud)
其中n :: Node和m :: Move,但我现在如何折叠Moves([Move])列表?
我尝试用foldl做但没有成功.