トラック
/
Unison
Unison
/
演習
/
括弧の対応
括弧の対応

括弧の対応

上級

はじめに

Bracketeer™という、古くからありながら強力なメインフレーム用のソフトウェアを書く機会が与えられました。 その上で動くソフトウェアは、独自の言語で書かれています。 構文の多くは見慣れたものですが、角括弧、波括弧、丸括弧が_たくさん_あることに気づきます。 Bracketeer™は強力ですが、柔軟性に欠けています。 ソースコードの中に、対応の取れていない角括弧、波括弧、丸括弧が1つでもあると、Bracketeer™はクラッシュし、再起動しなければなりません。 そうならないために、Bracketeer™で実行する前に、角括弧、波括弧、丸括弧の対応が取れているかを確認するコードを書き始めます。

説明

角括弧([])、波括弧({})、丸括弧(())、またはこれらの組み合わせを含む文字列が与えられます。 すべてのペアが正しく対応し、入れ子になっていることを確認してください。 それ以外の文字は無視します。 たとえば、"{what is (42)}?"はバランスが取れていますが、"[text}"はバランスが取れていません。

実装

この演習を解く方法はたくさんありますが、自分でabilityハンドラーを書く練習をしてみたい人のために、追加のスタブをいくつか用意しました。

この演習で用意されているヘルパー関数checkBalanceのシグネチャは、abilityの要件{Stack}を利用しています。 abilityであるStackはあらかじめ定義されていますが、そのハンドラーであるStack.runは定義されていません! 希望する場合は、Stack.run、checkBalance、isPairedの各関数を自分で実装してもかまいません。 abilityを使わずにこの演習を実装しても、テストは実行されます。


出典

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

括弧の対応を始める準備はできましたか?

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