タグ

mindのブックマーク (15,223)

  • 関数型プログラミング - Wikipedia


    : functional programming使[1] functional programming [2] : functional programming language[1]: functional language[1] [] [1][1] 
    mind
    mind 2008/02/08
    全ての関数が副作用を持たないか参照透過性を保つ言語 ――純粋な子は扱い難い!?という話し。 //
  • 関数、オブジェクト、クロージャ - FAX

    (thanks to id:koyachi、del.icio.us/rtk2106) OOPとFPと。関数、オブジェクト、クロージャの使い分けについて考えます。 関数型が良いのか、オブジェクト指向が良いのか、知りたいと思っていました。色々なページを読み、現時点で一応の答えを得ました。 カウンタを例にして、関数、スコープ、オブジェクト、クロージャの順に見て行きます。関数関数は処理です。入力と出力があります。関数型プログラミングでは、関数同士の入力と出力を連結しプログラムが構成されます。 var current = 0; function next(v){ return v + 1 } function previous(v){ return v - 1 } ok( 1 == ( current = next(current) ) ); ok( 2 == ( current = next(cu

    mind
    mind 2008/02/08
    「処理が一つしかないオブジェクト」 ――singletonなオブジェクトならクロージャで足りる? 逆に動的スコープを採用するとnewみたく何度も使えそう。。; //――C++みたいな静的OOPは模索的programmingには向いてないような
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
    mind
    mind 2008/02/08
    ――Cでclosure, Schemeでobject。 //――javascriptだと、関数/コンストラクタも、オブジェクト/クラスも、みな{}
  • クロージャ - Wikipedia

    クロージャ(クロージャー、英語: closure)、関数閉包はプログラミング言語における関数オブジェクトの一種。いくつかの言語ではラムダ式や無名関数にて利用可能な機能・概念である。引数以外の変数を実行時の環境ではなく、自身が定義された環境(静的スコープ)において解決することを特徴とする。関数とそれを評価する環境のペアであるともいえる。この概念は少なくとも1960年代のSECDマシンまで遡ることができる。まれに、関数ではなくとも、環境に紐付けられたデータ構造のことをクロージャと呼ぶ場合もある。クロージャをサポートする言語によるプログラミングでは、単に関数の中に関数を定義することができるだけでなく、その際に、外側の関数(エンクロージャ)で宣言された変数を暗黙的に内側の関数に取り込んで操作することができる。主な利点としてはグローバル変数の削減やコールバック関数記述の簡素化が挙げられる。 典型的に

    mind
    mind 2008/02/08
    ――内側の関数から造り始める場合と、外側の関数から作り始める場合と。 //
  • カリー化 - Wikipedia

    カリー化 (currying, カリー化された=curried) とは、複数の引数をとる関数を、引数が「もとの関数の最初の引数」で戻り値が「もとの関数の残りの引数を取り結果を返す関数」であるような関数にすること(あるいはその関数のこと)である。クリストファー・ストレイチーにより論理学者ハスケル・カリーにちなんで名付けられたが、実際に考案したのはMoses Schönfinkelとゴットロープ・フレーゲである。 ごく簡単な例として、f(a, b) = c という関数 f があるときに、F(a) = g(ここで、g は g(b) = c となる関数である)という関数 F が、f のカリー化である。 関数 f が の形のとき、 をカリー化したものを とすると、 の形を取る。uncurryingは、これの逆の変換である。 理論計算機科学の分野では、カリー化を利用すると、複数の引数をとる関数を、一つ

    mind
    mind 2008/02/08
    直感的には、「引数を幾つか固定すると、残った引数の関数が得られる」…複数の引数をとる関数fを、引数が「fの最初の引数」で、戻り値が「fの残りの引数を取り結果を返す関数」であるような関数gにすること。 ―― //
  • 抽象化 (計算機科学) - Wikipedia


     20219 20219 20219 ?: ""    ·  ·  · CiNii · J-STAGE · NDL · dlib.jp ·  · TWL : Abstraction 
    mind
    mind 2008/02/08
    ――目的と主体によって違う分類が出来上がってしまう; ――実用主義
  • ハッシュ関数 - Wikipedia


    使 ?: ""   ·  ·  · CiNii · J-STAGE · NDL · dlib.jp ·  · TWL20186 015"John Smith"  "Sandra Dee"   (: hash function) [1] 
    ハッシュ関数 - Wikipedia
  • 制御構造 - Wikipedia


    [1][2] [3]       call/cc 
    mind
    mind 2008/02/08
    ――フラグ方式の分岐の方が、後からの仕様変更のときプログラムテキスト書換えが少なくて済むような気がした。 (読み難くなる ie.動的実行論理構造と静的テキスト構造が対応しなくなる、バグ取り困難;) ――SNEG? //
  • Duff's device - Wikipedia

    Duff's Device(ダフスデバイス)とは、C言語での可変長の連続的コピーをループ展開により最適化実装するときに直面する端数の問題を解決するための手法である。 C言語のswitch-case文が持つフォールスルーを利用して、アセンブリ言語で行われる技巧をC言語で実現している。1983年11月、ルーカスフィルムで働いていたトム・ダフが発見した。 背景問題[編集] ループ展開は、ループのための分岐回数を減らす技法である。指定されるループ回数が不明な場合、ループ展開すると回数が合わない場合が出てくるので、ループの途中にジャンプすることで調整する。例えば、8回ぶんのループを展開した場合、指定されたループ回数が8で割り切れないなら、その回数を8で割った剰余のぶんだけ処理を実行する位置にジャンプさせる。 ダフはそのような最適化を検討していてCでの技法を発見した。 来のバージョン[編集] 連続コ

    mind
    mind 2008/02/08
    高速化の主要因はループ展開によるもの ――scriptの場合は遅くなる? // ――無理してloop/関数にまとめなくてもよいと勇気づけられるww
  • ループ展開 - Wikipedia


    : Loop Unwinding1: Loop Unrolling [1][2][3] [] 
    mind
    mind 2008/02/08
    ――繰返しとは何か? //コンパイラが Factorial(n) を認識したとしたら驚きだが ――問題の中に答えを最初から仕込んでおくtable programming w ――;三角関数表とか //
  • 継続 - Wikipedia


    [3]v4 (+ 1 2) v4 (+ 1 2)  call/cc[] Scheme call-with-current-continuation (call/cc ) SchemeR7RS[4] false goto[] goto
    mind
    mind 2008/02/08
    計算過程の実行スナップショット ――実行環境の取出し分別保存…closureにも似ている? //
  • try...catch Statement - MDC

    try...catch 文 try...catch 文はテストしたい文のブロックを指定し、さらに投げられるであろう例外に対する 1 つ以上の対処方法を指定します。例外が投げられると try...catch 文がそれを受け取ります。 try...catch 文は 1 つの try ブロックと 0 個以上の catch ブロックからなります。前者は 1 つ以上の文からなります。後者は try ブロックで例外が投げられた場合にどうするかを指定する文からなります。すなわち、成功させたい try ブロックと、失敗した場合にコントロールを渡す catch ブロックからなります。try ブロック内(もしくは try ブロック内から呼び出された関数内)のいずれかの文が例外を投げた場合、コントロールはすぐに catch ブロックに移ります。try ブロックで例外が投げられなかった場合は catch ブロッ

  • ロベールのC++教室 - 第5章 飛んでいきな -


     gotogoto使  <>:  goto <>;  goto  goto使  2使13 使使 3 bool Func() { FILE *pf1, *pf2, *pf3; bool bRet = fals
    mind
    mind 2008/02/08
    (C++の)goto 文はエラー処理の時に活躍 ――イベントがごちゃごちゃ起こって、やれマルチスレッドだ例外だとかやってるとデバッグが…; //goto 文はエラー処理の時に活躍する ―― //
  • 第2章

    mind
    mind 2008/02/08
    一般に、問題とプログラムの間には、具体的なプログラミング言語には依存しないアルゴリズムが存在 ――むしろ、繰返し脳でない再帰脳な子供を最初から育て(algorithm ===programにし)たらどういう世界になるだろう@@?? //
  • ETプログラミング入門テキスト

    HTML形式、PDF形式の2種類があります。 *切替ボタンで各章毎の節のタイトルを表示することができます。 全表示・非表示切替えには右下のボタンを、各章毎の切替えにはをクリックしてください。(※NNではご覧になれません。)

  • http://web.archive.org/web/20050313065942/www.ohmori-th.ed.jp/minemoto/sp.htm

    mind
    mind 2008/02/08
    構造化定理,同値変形,同型変形 ――cf. 等価変換システム ETI // 構造化の鏡 ――? //
  • 菊池 Blog - 菊池 Blog


      /CROSSWARP Inc. (title)    posted @ 17:16 | Comment (1) [ASP.NET] web.config 使  using System.Configuration; using System.Web.UI; using System.Web.UI.Design; namespace System.Web.UI {public static class ControlExtender
  • This Document has Moved

    This Document has Moved. この文書は http://www2u.biglobe.ne.jp/~oz-07ams/2002/ecma262r3/12_Statements.html に移動しました。 Japanese fonts required. All rights reserved. 1998-2015 TAKI

  • https://dl.acm.org/toc.cfm?id=SERIES11430&type=series&coll=ACM&dl=ACM

    mind
    mind 2008/02/06
    Structured programming O. J. Dahl, E. W. Dijkstra, ―― //Formal languages and their relation to automata ―― //Computation: finite and infinite machines ―― // The computer and the brain John von Neumann ―― //
  • Super Technique 講座〜ハッシュテーブル


    使便awk  Perl  $List{'http'} = 80; 便 Java      Java  Hashtable