不幸的是我无法实现这个功能,我已经尝试了很多.
f5 ::(ab - > c) - >(a - > c,b - > c)
我试过这个
f5 k _ (Left x) = k x
f5 _ u (Right y) = u y
Run Code Online (Sandbox Code Playgroud)
提前感谢您的帮助.
Run Code Online (Sandbox Code Playgroud)palindromize :: [a] -> [a] palindromize [] = [] palindromize [x] = [x] palindromize (x:xs) = (x:xs) ++ reverse(x:xs)
我在haskell中执行了这个代码但是在中间元素中我不想看到double,怎么做呢?(另一种方式我不想看到原始列表的最后一个元素)我应该使用头部或尾部还是什么?
像那样:palindromize"mad"=="女士"palindromize"race"=="racecar"
我有方向,我就是这样的第1步
这是方向:
North (x,y) = (x,y+1)
East (x,y) = (x+1,y)
South (x,y) = (x, y-1)
West (x,y) = (x-1, y)
Run Code Online (Sandbox Code Playgroud)
怎么实现那样?
f13 :: [Dir] -> (Int,Int)
f13 [North, North] == (0,2)
f13 [North, East, South, West] == (0,0)
f13 (replicate 10 East) == (10,0)
Run Code Online (Sandbox Code Playgroud)
我的代码:
a = 0
b = 0
f13 :: [Dir] -> (Int,Int)
--f13 xs = (a,b+1)
f13 xs | xs == North = (a,b+1)
| xs == East = (a+1,b)
| xs == South = (a,b-1) …Run Code Online (Sandbox Code Playgroud)