1
A
回答
0
哈斯克爾是:
suffixes = reverse . foldr f [] where
f y [] = [[y]]
f y ([email protected](ys:_)) = (y:ys) : yss
我不知道SML,但解決的辦法應該是相似的
1
這裏是@ Landei在SML語法的解決方案:
fun suffixes xs =
let
fun f (y, []) = [[y]]
| f (y, yss as (ys::_)) = (y::ys)::yss
in
rev (foldr f [] xs)
end
我承擔您可以使用SML Basis Library的rev
功能。否則,實現這樣的功能應該很容易。
1
如何:
[1,2,3,4]將返回[1,2,3,4],[2,3,4],[3,4],[4 ]]:
fun myfun1 l = foldr(fn (a,b)=> if a=nil then [] else a::[email protected](tl(l)))[] [l]
[1,2,3,4]將返回[[4],[3,4],[2,3,4],[1,2,3,4]] :
fun myfun2 l = foldr(fn (a,b)=> if a=nil then [] else myfun2(tl(l))@a::b)[] [l]
相關問題
- 1. foldr無法返回無限列表
- 2. 薩斯@function返回前綴或後綴列表
- 3. REST服務,使用ArrayOf前綴列表返回前綴
- 4. 返回後綴無效表達式
- 5. 使pg_search返回結果的前綴和後綴
- 6. 使用map函數返回的列表在使用後消失
- 7. 爲什麼foldr立即返回?
- 8. haskell foldr與列表操作
- 9. C++中前綴和後綴的返回值
- 10. 使用rvest返回表的後代
- 11. OCaml - 返回列表的所有前綴的函數
- 12. 如何使用正則表達式在特定前綴之後返回文本?
- 13. 返回列印功能使用列表
- 14. 後綴添加到列表用foreach
- 15. 在使用中繼器排序後的返回列表
- 16. 使用正則表達式在80列之後添加後綴
- 17. 返回使用ID的列表與LINQ
- 18. 使用後綴數組搜索後綴
- 19. 使用foldr查找列表的第K個元素
- 20. 返回列表中的某個元素否則返回最後
- 21. 返回使用函數列表的結果返回()
- 22. Haskell - 使用foldr的MinMax
- 23. 使用列表返回對象但使用WHERE篩選列表
- 24. 引用類型的返回函數和後綴增量
- 25. 算法或python實現獲取列表的前綴後綴的最小列表
- 26. 刪除列表中的後綴Python
- 27. Eclipse的管理文件後綴列表
- 28. 返回列表
- 29. 返回列表
- 30. force mysqldb dict光標返回前綴所有列名與表名
想想這樣:'foldr'會以相反的順序顯示輸入列表中的每個項目,以及到目前爲止累積的結果。如果你有清單中第一個'n'後綴的列表,並且第n + 1個元素(從最後算起)計算第n + 1個後綴,你需要做什麼? – waldrumpus