Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

インデックスを1から始める言語はまだ使われています #117

Open
over-the-stardust opened this issue Aug 24, 2019 · 1 comment

Comments

@over-the-stardust
Copy link

「イテレーターと添字の範囲」のところで「実はC++に限らず、現在使われているすべてのプログラミングはインデックスを0から始めている。かつてはインデックスを1から始める言語も存在したが、そのような言語はいまは使われていない。」とあります。

しかし、Lua 言語はインデックスが1から始まります。まだそれなりに使われています。

正確には、Luaではデータを構造化する仕組みとしてテーブル(table)だけがあり、テーブルは基本的には連想配列です。
しかし、キーとして 1と連続する整数値を指定した時は、配列のインデックスとして特別扱いされます。
たとえば、

  • 空のテーブルに、位置を指定せず追加すると、追加された値のインデックスが 1で追加される。
  • 配列を特別扱いする列挙がある。
    • テーブル内を全て列挙する。
        for キー変数, 値変数 in pairs(テーブル) do 処理内容 end
    • テーブル内の配列扱いする部分を列挙する。
        for インデックス変数, 値変数 in ipairs(テーブル) do 処理内容 end

https://wandbox.org/permlink/BU6dtlbYTTaQlwe9

ですので、存在しないは言い過ぎかと思います。

@tobynet
Copy link

tobynet commented Sep 6, 2019

以下はどうでしょうか。

- 現在使われているすべてのプログラミングはインデックスを0から始めている
+ 現在使われているプログラミングの多くはインデックスを0から始めている

「多く」よりいい表現があるとよいのですが。


「存在しないは言い過ぎ」に入りそうな言語としては、Lua の他に R, Mathematica, MATLAB などでしょうか。 最近だと Julia も?

AWKCOBOL は現役の言語と言えます。「かつて」に入れていいかは迷う所です。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants