エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
Racketで抽象データ型(実装を捨象して、コンストラクタとデータを操作する関数だけを意識して使えるデ... Racketで抽象データ型(実装を捨象して、コンストラクタとデータを操作する関数だけを意識して使えるデータ型)を定義するのどうやればいいんだろう、となり、とりあえずスタックを書いてみた。 structを使うやり方と、classを使うやり方、両方試してみる。 例題 pop! push!が可能なスタックを作る。 リストとベクタによる二種類の実装を提供し、それぞれのコンストラクタも用意する。 structによる解法 define-genericsでインターフェースを定義 データの表現をstructとして定義し、#:methodsキーワードでインターフェースを実装 コンストラクタは関数として用意 #lang racket (require racket/generic) (require racket/vector) (define-generics stack (pop! stack) (pus