タグ

関数に関するgam-22のブックマーク (11)

  • 明示的な末尾呼び出し最適化構文が実装された - JS.next

    概要 ES2015で特定の形で関数呼び出しがされている場合に末尾呼び出し最適化が行われるよう定められたが、 パフォーマンスや、デバッグなどの実装上の問題が浮上したため、それを解決するための新たな構文がV8で実装されたが、その後廃止された 説明 具体的には、strictモードの是非を問わず、「 return continue fn() 」という形での呼び出しについて最適化が有効になる。 (詳細は明示的でない末尾呼び出し最適化の記事をご覧ください) 最適化が効く例: function fn( n ) { 'use strict' if ( n <= 0 ) { return 'done!' } return continue fn( n - 1 ) } fn( 1e6 ) // "done!" 最適化が効かない例: function fn( n ) { 'use strict' if ( n

    明示的な末尾呼び出し最適化構文が実装された - JS.next
  • プログラミングで変数名や関数名のネーミングに迷ったときに便利なカンニングペーパーまとめ

    僕は、プログラムをする上で変数や関数に良い名前を付けるのはとても重要と考えています。 というのも、良い名前を付ければ、それだけでそのコードがしたいことの説明になり、コメントと同等の働きをすることもあるからです。 自分がちゃんとそれをできているのかはさておき、僕は普段から、できれば読みやすくて分かりやすい名前を付けたいと思っています。他の人も読むコードであれば、できればプログラムでよく使われるような単語を利用して書いた方がより分かりやすいです。 ただ、よい名前を考えるのって、ちょっと面倒くさいんですよね。僕はこれまで、英語の辞書を利用して、考えたりしていたのですが、「何か、プログラムでよく使われる単語をまとめたものはないか?」と探したら、ドンピシャのものがいくつかあったので、それらをまとめて以下で紹介します。 photo by Michael Coté codic codic – デベロッパ

    プログラミングで変数名や関数名のネーミングに迷ったときに便利なカンニングペーパーまとめ
    gam-22
    gam-22 2015/03/12
    codic良さそう
  • 初心者によるMATLABメモ|通過点列を通るC2連続な3次ベジエ曲線の生成

    検索エンジンから来た方は読みたい記事が表示されていない可能性があります。 その場合、左メニューのフォームでブログ内を検索すると見たい記事を見れると思います。 もしくは、カテゴリー名をクリックしていただくと各カテゴリーの記事のリストが見れます。 指定した点列の間をC2連続に接続したベジェ曲線で補間し、そのベジェ曲線の制御点を返す関数を紹介します。 生成されるスプライン曲線は,C2連続ですので,結果的にG2連続(曲率連続)になっています。 簡単な使い方,やっていること、使用例の順に示します。(ダウンロードはこちらから) まず、関数の使い方だけ書いておきます。 CPS = find_c2_bezier3(P) … 点列Pを厳密に通るC2連続な3次ベジエ・スプラインの制御点をセル配列CPSを返します。 以下に,まず簡単にやっていることの説明を書いておきます。 通過点p={P0...Pn}があるとき

  • JavaScriptの「this」は「4種類」?? - Qiita

    javascriptの「this」は「4種類」?? この記事ではベースとなる4種類の「this」を紹介します。 実際は4種類ではないのですが、 このベースの4種類を理解できれば他もすぐに理解できます。 thisの4種類のパターン 1:メソッド呼び出しパターン 2:関数呼び出しパターン 3:コンストラクタ呼び出しパターン 4:apply,call呼び出しパターン ここで重要なのは「呼び出し元」をみることです。 なぜなら「呼び出し元」に「this」は左右されるからです。 メソッド呼び出しパターン これはもう一番直感的にわかりやすいです。 説明はいらないんじゃないかという感じなのですが、 一応ソースを。。 //メソッド呼び出しパターン var myObject = { value: 10, show: function() { console.log(this.value); } } myObj

    JavaScriptの「this」は「4種類」?? - Qiita
    gam-22
    gam-22 2014/06/07
    分かりやすい
  • 新しいプログラミング言語 Swift | DevelopersIO

    Objective-Cに替わる新しいプログラミング言語Swiftの登場 WWDC2014で発表された新しいプログラミング言語Swiftでできることを紹介したいと思います。 今までとこれから Swift使うとこんなにコードが短くなるぜという例です。 今まで これから 確かにスマートですね。 言語ガイドをダウンロード iBookでガイドを読めますのでダウンロードしてみましょう。 変数の宣言 varは変数、letは定数 var myVar = 42 myVar = 50 let myConst = 42 コントロール if,switch,for-in,for,while,do-while let individualScores = [76, 43, 103, 87, 12] var teamScore = 0 for score in individualScores { if score >

    新しいプログラミング言語 Swift | DevelopersIO
    gam-22
    gam-22 2014/06/03
    普通にモダンな言語で書きやすそう。varは型推論してくれるのかな?
  • 第16回 JavaScriptのthisとcall | gihyo.jp

    こんにちは、太田です。前々回、前回とJavaScriptにおける継承について学習しました。今回はそれに深く関わるthisについて学んでいきます。 JavaScriptのthisはややクセのある動作をするように思えるかもしれませんが、仕組みをしっかり把握すれば実に簡単です。特に重要なのは次の2点です。 thisが何を指すかは関数の呼び出し方で決定する thisは関数スコープに存在する特殊な変数である インスタンスとしてのthis では、まずはコンストラクタ内でのインスタンスとしてのthisを見てみましょう。 コンストラクタとthis function A(name){ this.name = name; } A.prototype.getThis=function(){ return this; }; var a = new A('aaa'); console.log(a); console

    第16回 JavaScriptのthisとcall | gihyo.jp
  • すぐに分かる CoffeeScript によるクラスの書き方 | DevelopersIO

    年末年始から CoffeeScript を積極的に使っているわけですが、ピュアな JavaScript よりもクラスの取り扱いがしやすくなっていることに一番の恩恵を感じています。すべての機能を使いこなせているわけではありませんが、何件かの業務を通じてフィールド(インスタンス変数)やプライベート関数など自分流のクラスの書き方が出来てきたので、ここに書き記しておくとします。 よくある CoffeeScript のクラス構造 CoffeeScript に関する書籍やブログエントリを見ると、だいたいこのようにクラスを紹介していることが多いです。 class ClassName @staticVar: 0 # 静的なプロパティ @staticFunc: -> # 静的な関数 # do something... constructor: (name)-> # コンストラクタ @name = name

    すぐに分かる CoffeeScript によるクラスの書き方 | DevelopersIO
  • HiBARA Software Blog

    前回の記事「CoffeeScriptでクラスをつくりその中にjQueryイベントを持たす」の関連、というか続きです。 前回も、thisの所在に悩まされたのですが、今回も同じような感じでハマったので一応メモ。 これに関する解は、わりとアチコチ(Stack Overflowなど)にあるのですが、この流れでハマると、その解に辿り着けない(ググってもそれが解答だと気づけない)ような気がするので、ここに書いておきます。 たとえば、以下のようにclassで作った<div>をこれまたclass内で定義したメソッドからアニメーションをさせます。 今回の例で言えば、右に移動したら(animate {‘left’:’128′}) 、下へ(animate {‘top’:’128′})、次に左へ(animate {‘left’:’128′})移動し、最後は元の位置(animate {‘top’:’0′})に戻る、

  • JavaScript のスコープを理解する - tacamy--blog

    スコープとは、変数の有効範囲のことで、プログラムのどの場所から参照できるかを決める概念です。 スコープの種類 JavaScript のスコープには、グローバル変数とローカル変数の 2 種類あります。 グローバル変数 ローカル変数 関数の外(トップレベル)で宣言した変数 関数の中で宣言した変数, 関数の仮引数 プログラム全体から参照できる その関数の中でのみ参照できる ブロックスコープは存在しない Java などの言語では、if や for などの {} で囲まれたブロックごとにもブロックスコープがありますが、JavaScript には存在しません。 JavaScript でどうしてもブロックスコープを使いたい場合は、with 命令を使う方法や、無名関数を定義と同時に呼び出すなどの方法で、擬似的にブロックスコープを作ることは可能です。 補足 : let を使うとブロックスコープがつくれると教

    JavaScript のスコープを理解する - tacamy--blog
    gam-22
    gam-22 2014/04/29
    JSってブロックスコープ無いのか
  • JavaScript のスコープチェーンとクロージャを理解する - tacamy--blog

    前回で JavaScript のスコープの基がわかったので、今回はスコープチェーンとクロージャを勉強してみました。 Call オブジェクトとクロージャの理解がかなり大変でした・・。 変数オブジェクト JavaScript で変数の宣言と参照をするということは、変数オブジェクトを読み書きするということです。 変数オブジェクトというのは、key と value による変数管理専用のハッシュテーブルのこと key が変数名、value が値のセットになっているテーブルで、変数の数だけレコードができるイメージ 変数オブジェクトはプログラマが意識することのない、便宜的なオブジェクト グローバルオブジェクト JavaScript は、ブラウザが新しいページを読み込んだとき、内部的に新しいグローバルオブジェクトを生成して初期化します。 グローバルオブジェクトとは、グローバル変数やグローバル関数を管理す

    JavaScript のスコープチェーンとクロージャを理解する - tacamy--blog
  • Rubyを使って「なぜ関数プログラミングは重要か」を読み解く(改定)─ 前編 ─ 但し後編の予定なし

    2年ほど前に書いた記事を電子書籍化して「M’ELBORNE BOOKS」で販売するために全体的な見直しを行なって入稿する段になって、これにはベースとなっている他者の論文があって言ってみればこの記事はそのマッシュアップになっているんだけれども、その著者の許可もなくその表現が全く別物だとしてもその主張のあらすじが残っている限りにおいてこれを販売することが果たしていいことなのかという思考に遅ればせながら陥り、それが仮に法的に問題ないとしてもなんだか一表現者の行為としての妥当性を幾分欠いているという結論に至って販売を思い留まった。かと言って折角書き直したものをこのままお蔵にするのもなんだか寂しいなあという気分も一方であり、まあ原作者の意に反したものでもないだろうからブログの記事なら許してくれるよねもう2年前にも書いちゃってるしという勝手な解釈の下、ここにその記事を公開しましたのでお時間の許すRub

  • 1