プロジェクトによって導入された委譲の実装がある。endendSmalltalkにおける関数オブジェクト[編集]冒頭にも述べたようSmalltalkでは関数オブジェクトに類似する機能としてブロックが存在する。他の言語同様関数的な使い方も可能であるが、複数の実行方法を備えており多機能になっている。Smalltalkでは言語構文としてif文を始め殆どの制御構文が存在せず、メッセージとこのブロックの組み合わせによってあらゆる制御を実現しておりブロックはSmalltalkの根幹をなしている。下記に一般的なブロックの使用例を示す。[から]までがブロックである。"レシーバーと引数を比較して大きい方を返す。].!!上記における^は他の言語のreturnに当たる復帰文であるが、この復帰文はブロックの呼び出し階層を無視しブロックを含むメソッドの呼び出し元まで一気に戻るという特殊な働きをしており、更に他の言語と一線を隔てる特徴となっている。この復帰文によって、ブロックはより制御構文としての性格が強くなっている。用語のファンクタではない。形式化したものとして、数学(圏論)における関手(ファンクタ)と同様のものを持つ言語もある。HaskellのFunctorは以下のような型クラスである。以下を満たさなければならない。func2Prologでは、関数のシンボルをファンクタと呼んでいる。スクリプトを記述する上では簡単なように設計されているが、内部ではわりとコストが掛かる。ブロックはエスケープしないため軽い処理で扱うことができるし、元々イテレータのためのものだったため、繰り返し処理のために使われることからも、軽いほうが望ましい。それがオブジェクトになれば、メソッドの返り値などになり得るために、重い処理となるためである。(日時は個人設定で未設定ならばUTC)。表示-継承ライセンスの下で利用可能です。追加の条件が適用される場合があります。詳細は利用規約を参照してください。Cookieに関する声明モバイルビュ。