リスト内包を使ってリストをどのように半分に分割しますか?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
任意の考えを?
[Nb:これは実際にはハスケルではありませんが、これに似ています。 !インデックスリストのために使用され、#は、長さを与える)
編集さ::
オーケー、それはその
half mylist = [r | r <- [mylist!0..mylist!(#mylist div 2)] ]
作品が判明ので、しかし、数字だけではなく文字列のリストインチすべての手がかりは?
答えは分かりますが、これはミランダではうまくいきません。 splitAt関数はありません... – tetris11
ミランダは死んだ言語であることを指摘できますか?それにもかかわらず、 'splitAt n xs =(take n xs、drop n xs)'と同じように 'splitAt'を自分で実装することができます - とにかく' take'を使うべきです:) –
私は完全に認識しています死んだミランダはどれぐらいですか?残念なことに私の講師は教科書を書いているので、それを学ばなければなりません。しかし、それはかなり楽しいです。 – tetris11