トラック
/
Clojure
Clojure
/
演習
/
配列の平坦化
配列の平坦化

配列の平坦化

中級

はじめに

緊急物資が届きましたが、1つ問題があります。 壊れないようにするため、品物(懐中電灯、救急箱、毛布)は箱の中に詰められています。しかも、その箱のいくつかは、ほかの箱の奥で何層にも入れ子になっています。

いざというときに備えて、すべてを1つの箱からすぐに取り出せるようにしておく必要があります。 物資をすべて箱から出して、1つの箱にまとめることはできますか? そうすれば、いちばん必要なときにすぐに使えます。

説明

任意の深さで入れ子になった配列を受け取り、完全に平坦化した配列を返します。

言語トラックによっては、入力の配列にnullのような値が含まれることがあります。また、そのような値をどのように表すかはトラックによって異なります。 そのような値は、平坦化した配列から除外してください。

さらに、トラックによっては、入力のデータ型が異なっていたり、含まれる値の型が異なっていたりします。

詳しくはテストスイートを確認してください。

例

入力: [1, [2, 6, null], [[null, [4]], 5]]

出力: [1, 2, 6, 4, 5]

付録

Note

上記の説明は、すべての言語トラックで一貫性を保つために、共有リポジトリと同期しています。 この付録では、Clojureトラックの目標によりよく沿うように、必要に応じて補足説明を加えたり、説明を修正したりしています。

Clojureトラックのこの演習では、テストが示しているとおり、入力はベクターが入れ子になったどのような組み合わせでもよく、出力はベクターであると仮定してかまいません。 ただし、これは厳密な要件ではありません。入力はシーケンシャルなもの(リスト、ベクターなど)が入れ子になったどのような組み合わせでもよく、出力はシーケンスであると仮定してもかまいません。

GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
Clojure Exercism

配列の平坦化を始める準備はできましたか?

Exercismに登録すれば、12個のコンセプト105個の演習、そして本物の人間によるメンタリングとともに、Clojureを学んでマスターできます。すべて無料です。