如何使用列表理解將列表拆分爲兩半?Haskell:使用列表理解拆分列表
例如如果我有[1,1,2,2,3,3,4,4,5,5]
,我只想[1,1,2,2,3]
我嘗試迄今:
half mylist = [r | mylist!r ; r <- [0..(#mylist div 2)] ] ||does not work
有什麼想法?
[鈮:這實際上不是Haskell,但類似。 !被用於索引列表,並給出了#長度)
編輯::
好了,事實證明,
half mylist = [r | r <- [mylist!0..mylist!(#mylist div 2)] ]
作品,但只有在數字,而不是字符串列表。任何線索?
欣賞答案,但這只是在米蘭達不會工作。沒有splitAt功能... – tetris11
我能指出米蘭達是一種死去的語言嗎?儘管如此,你仍然可以自己實現'splitAt',因爲'splitAt n xs =(拿n xs,drop n xs)' - 我們應該只用'take' :) –
哈哈相信我我完全知道米蘭達是如何死去的。不幸的是,我的講師在其上寫了教科書,因此我們不得不學習它。雖然這很有趣。 – tetris11