Re: プログラミングと論理学(Re: Re[2]:大文字と小文字の区別)
nojimaです。
kono@ie.u-ryukyu.ac.jp (Shinji KONO) writes:
> > > 連結リストのプログラムが書けるためにはポインタの概念を
> > > 知っていなければならない。
> > ・連結リスト操作をもつ言語を使うえば不要。
> > ・連結リストの実装詳細をライブラリで隠蔽している言語を使えば不要。
> > #とかいうのは無し?ひょっとして空気読めてませんでした?
>
> 破壊代入を理解するためには、実はポインタの概念が必要だと思う。
了解です。確かに。
> 破壊代入もないなら要らないかな。
確かに破壊代入はプログラム組む上で要りますね...困った。
> > ポインタという概念が本当にあらゆるプログラマに必要なのか?という
> > のが疑問に思えてきてます。使わなくてすむならポインタなんて無い方がいいな。
>
> バッファオーバフローがあるような言語だと必須でしょうね。で、
> 配列を持つ言語は、すべてオーバーフローが存在するので、かなり
> の言語では必要なんじゃないかなぁ。
余談ですが、perlは
・配列バッファオーバーフローはないけど、
・複数の配列を関数関数の引数にしようとするとポインタの概念が必要
(リファレンスとかいってます)
なので実際困っている最中です。
このポインタという概念がでてきた瞬間に、正直職業訓練が難航します。
# Rubyとかの方がよいんでしょうかね...
> とか考えて来ると、実は、ポインタの概念が重要なんじゃなくて、
>
> ○○○○を用いるときに必要な制約の集合
>
> を理解し、
>
> その制約を満たすようにプログラムできる
>
> ってことが重要なんだろうなぁ。そういうことを理解しなくても
> プログラムできるような言語もあって、例えば、
>
> ハノイの塔のような制約から反することができないゲーム
> Excel のマクロのような制約が明示的なものしかないもの
>
> とかかな。
商業で飯くっている自分からすると、制約理解が出来るだけ簡単な方が嬉しいですね。
ポインタは原始的過ぎて教えるのに困る。
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735