Log maaguu (^^; com 北海道札幌でホームページ制作を楽しむ

maaguu.comのお知らせとかとりとめのない話題とか

「2008年12月」の記事

AFPBB Newsの「拡大写真を見る」ボタンをクリックしたら、ウィンドウ全面に会員登録画面が表示されてブラウザを落とす以外になくなった[Permanent Link]

腹立つ(誇張)、って話。

ブラウザクラッシャーの類だな、これ。

Ctrl+Wで消せるけどさ。

見たページ
韓国の現代自動車、小型車「i20」をインドで発売へ 写真4枚 国際ニュース : AFPBB News

ちなみにFx3.0.5/Ubuntuでの話。

強制全画面ブラウザウィンドウ表示っての、まだあったのね。

ポイントを現金でキャッシュバック

プログラミングの用語が全然わかりません(^^ゞ[Permanent Link]

JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティスを何の気なしに買ってみてちらっと目を通したけれど、ちんぷんかんぷんです。

つまりあれだ、オレはプログラミングがわかりません。プログラミングがわからないオレが読んでちんぷんかんぷんなので、これはプログラミングがわからない人が読む本ではありません。

JavaScriptの関数は、(大部分は)レキシカルなスコープを持つファーストクラスオブジェクトである。JavaScriptはメインストリームに登場した最初のラムダ言語だ。実際には、JavaScriptはJavaよりもLispやSchemeとよく似ている。JavaScriptはCの皮を被ったLispなのである。この性質のおかげでJavaScriptは非常に強力な言語になっている。

JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス

ひとまず用語の意味だけはメモしておこう。

レキシカル

以下のようにあったので、多分レキシカルはローカル変数のローカルと同じ意味だろう。

クロージャはある関数全体が他の関数(以下、エンクロージャ)の内部で宣言されたときに発生し、内部の関数はエンクロージャのローカル変数(レキシカル変数)を参照する。

クロージャ – Wikipedia

スコープ

上記引用に続いて以下のようにある。

実行時に外部の関数が実行された際、クロージャが形成される。クロージャは内部の関数のコードとエンクロージャのスコープ内の必要なすべての変数への参照からなる。

クロージャ – Wikipedia

また、

プログラミングでのスコープとは、ある変数や関数が特定の名前で参照される範囲のこと。ある範囲の外に置いた変数等は、通常、その名前だけでは参照できない。このときこれらの変数はスコープ外である、「見えない」といわれる。

スコープ – Wikipedia

ファーストクラスオブジェクト

第一級オブジェクトで引けた。

第一級オブジェクトファーストクラスオブジェクトfirst-class object)は、あるプログラミング言語において、その言語における他のものと比べて制限なしに使用できる物体のことである。第一級オブジェクトは「第一級データ型に属す」という。

この言葉は1960年代にChristopher Stracheyによって「functions as first-class citizens」という文脈で初めて使われた。

言語によって、第一級オブジェクトは次のような性質をもつ。

  • 匿名のリテラルとして表現可能である。
  • 変数に格納可能である。
  • データ構造に格納可能である。
  • それ自体に独自性を内在する(名前とは独立している)。
  • 他のものとの等値性の比較が可能である。
  • プロシージャや関数のパラメータとして渡すことができる。
  • プロシージャや関数の戻り値として返すことができる。
  • 実行時に構築可能である。
  • 表示可能である。
  • 読み込むことができる。
  • 分散したプロセス間で転送することができる。
  • 実行中のプロセスの外に保存することができる。

第一級オブジェクト – Wikipedia

ラムダ言語

ラムダ計算 – Wikipediaを参照。

専門用語を調べるとその専門用語の説明に別の専門用語があってまた専門用語を調べなければなりませんね(^^ゞ

クロージャ

クロージャ (クロージャー、Closure) は、プログラミング言語において引数以外の変数を実行時の環境ではなく、自身が定義された環境(静的スコープ)において解決する関数のことである。関数とそれを評価する環境のペアであるともいえる。

Schemeは完全な静的スコープのクロージャを持つ最初の言語として登場した。実質的にすべての関数型言語(Scala、Haskell、OCamlなど)とSmalltalkに由来するオブジェクト指向言語は何らかの形でクロージャを持っている。 その他のクロージャを持つ言語に、Groovy、ECMAScript(JavaScriptを含む)、Perl、Python、Ruby、Lua、C#などがある。

クロージャ – Wikipedia

PHPが入っていませんね(5.3から実装されるらしいです)。

リテラル

コンピュータプログラミングにおいてリテラルは、ソースコード内に値を直接表記したものをいう。数値、文字列、関数などさまざまな型のものが存在し、それぞれの表記方法も言語によって異なる。

リテラルを記述できることは、第一級オブジェクトを構成するための要件として見なされる場合もある。

リテラル – Wikipedia

だめだこりゃ、勉強しないと。

ポイントを現金でキャッシュバック

経験を教えるのと経験の積み方を教えるのと、どちらがいいのか。というか、救われた話[Permanent Link]

人を教える能力があるかどうかはさておき、オレは後者、経験の積み方を教えるほう。

私に技術的なものごとを教えて下さる方が主に二人いる。一人はその方が今まで積んできた経験を教えて下さる。一人は経験の積み方を教えて下さる。とてもとてもありがたい。(中略)ここで前者をAさん、後者をBさんと呼びたい。

(中略)

Aさんはとても親切な方だ。何かわからないことを訊ねると、すぐに適切な答えを教えてくださる。そして更に、何でその答えになるのかということも教えてくださる。そのなぜその答えになるのかという考え方にその方が積まれてきた経験がある。それを学ばせていただけるのが非常にありがたい。

(中略)

Bさんはちょっとぶっきらぼうな方だ。何かわからないことを訊ねると、その答えの調べ方だけ教えて下さる。答えを直接教えて下さることは滅多にない。けれども、教えて下さったことを元に答えを探すと必ず答えに行き尽くし、その答えに行き着く過程で何をどう調べたらいいのかということや、その答えの周辺知識も身に付く。そうして経験を積んでいくのだ、ということを学ばせていただけるのが非常にありがたい。

学ぶということ

Aさんはとても親切だけれども、Bさんはそうではありません。親切ではありません。教えられているこの人はまず、Aさんには「親切ないい人だ」というよい感情を抱き、Bさんには「不親切で感じが悪い」とよくない感情を抱いています。

Aさんは第一印象がよく、Bさんは第一印象が悪い。

なるほど、オレは今まで相手にぶっきらぼうなよくない印象を与えていたのか……というのは分かっていましたけれども、答えに辿り着くまでの道筋(調べ方)を知らせないのは非常に勿体ないと思います。と言うのも、オレ自身が調べ方を身に付けて技術を習得してきているからです(習得レベルはここでは置いておきますね)。それがオレの経験だから、その核心を伝えずに何を教えられるのでしょうか。

……ということを今までオレは伝え切れていなかったのかなあ。調べ方が大事なんだって言ってきたけれど、伝わり切らなかった。なにせ、調べ方とその大事さを教えても、最後まで不満な顔をしている人ばかりにしか出会って来ませんでした。「こいつ自分で調べるのが面倒くさいから手っ取り早く答えが欲しいんだな」なんて勘ぐってみたりもしました。「いやいや、そうではないんだ、答えに辿り着くまでの試行錯誤が大事なんだ。練習しなければ身につかない」と言うことが伝わっていなかったのでしょう。

非常にありがたいと言うこの人は、オレにとっては神様のようです。

ポイントを現金でキャッシュバック
Email to maaguu:info@mx.maaguu.com Powered by WordPress MU Clicky Web Analytics