2016-12-12 9 views
1

putStrで示されていると、バスの時刻表を生成する文字列があります。文字列をタプルのリストに変換する方法は?

それはこのようなものになります。 "4 | 12 32 52 \ N5 | 12 32 52 \ n" は私が仕事に必要なもの

は、このフォームにそれを変更することです: [{4、[ 12 32 52]}、{5、[12 32 52]}] 私は仕事が必要です。

解決しないでください。ちょっとしたアイデアや助けてくれる機能を教えてください。ダニエル

+0

'group'と' groupBy'の両方が、インポートリストに追加する必要があるData.Listモジュールにあります。 [Hoogle](http://hoogle.haskell.org/?hoogle=groupBy)を使用して、機能を名前またはタイプシグネチャで検索し、それらがどのモジュールであるかを識別することができます。 文字列を個々の行に分割するのに便利な[unlines](https://hackage.haskell.org/package/base-4.9.0.0/docs/Prelude.html#v:lines)と 'readManyあなたの文字列からIntsを抽出するための[this post](http://stackoverflow.com/questions/20176706/reading-ints-in-haskell/20177526#20177526)の関数です。 – ppb

+0

haskellでは、タプルのリストは[(4、[12、32、52])、(5、[12、32、52])] – wizzup

答えて

0

また、我々はGROUPBYを使用するように言われたが、グループおよびGROUPBYのために私は、「しない範囲で」取得します!

ええ、あなたを助けるのにgroupByを使うことができます。 hoogle

そして、ここ2つの素敵な例です:

ここでは、docだ - >だから、

example1

example2

、あなたは(あなたの関数に何を決めなきゃ - > Bool)を使用して、必要な方法をグループ化します。 また、1つのグループ基準または複数のグループ基準が必要かどうかを判断する必要があります。 "a | b \ na | b \ n"というパターンを持っていると言えます。グループ化のために "切り取る"場所を決定する必要がありますが、 "a"と "b" 。

これだけです。

私は助けてくれることを願っています。

関連する問題