teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記しました。

2019/01/16 11:28

投稿

myoon
myoon

スコア100

answer CHANGED
@@ -1,3 +1,4 @@
1
1
  はじめまして。言語仕様にあっているならば、コンスセル構造(これは実装の一種であって、このように実装しなければならない、という規則ではありません)使わなくともルール違反ではないと思います。むしろすべてをコンスセル構造にすると効率が落ちる場合もあると思います。
2
- 例えば、リストを(要素の値を描き変えない)配列として実装することも可能だと思います。ランダムアクセスができるので要素を見つけるのは効率が上がることが期待できますが、リスト構造を変える操作は効率が下がりそうです
2
+ 例えば、リストを(要素の値を描き変えない)配列として実装することも可能だと思います。ランダムアクセスができるので要素を見つけるのは効率が上がることが期待できますが、リスト構造を変える操作は効率が下がりそうです。
3
+ C++なら、長さが実行時に決められるvectorというデータ構造もあります。
3
4
  schemeでもクロージャーは内容を見ようとしてもそのままでは中身が見えません。クロージャーもコンスセルを使って実装することは可能ですが効率が悪いのでしょう。

1

追記しました

2019/01/16 11:28

投稿

myoon
myoon

スコア100

answer CHANGED
@@ -1,2 +1,3 @@
1
1
  はじめまして。言語仕様にあっているならば、コンスセル構造(これは実装の一種であって、このように実装しなければならない、という規則ではありません)使わなくともルール違反ではないと思います。むしろすべてをコンスセル構造にすると効率が落ちる場合もあると思います。
2
- 例えば、リストを(要素の値を描き変えない)配列として実装することも可能だと思います。ランダムアクセスができるので要素を見つけるのは効率が上がることが期待できますが、リスト構造を変える操作は効率が下がりそうですが。
2
+ 例えば、リストを(要素の値を描き変えない)配列として実装することも可能だと思います。ランダムアクセスができるので要素を見つけるのは効率が上がることが期待できますが、リスト構造を変える操作は効率が下がりそうですが。
3
+ schemeでもクロージャーは内容を見ようとしてもそのままでは中身が見えません。クロージャーもコンスセルを使って実装することは可能ですが効率が悪いのでしょう。