サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは本日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。
クラス cls の新しいインスタンスを作るために呼び出されます。 __new__() は静的メソッドで (このメソッドは特別扱いされている ので、明示的に静的メソッドと宣言する必要はありません)、インスタンスを 生成するよう要求されているクラスを第一引数にとります。残りの引数はオブ ジェクトのコンストラクタの式 (クラスの呼び出し文) に渡されます。 __new__() の戻り値は新しいオブジェクトのインスタンス (通常は cls のインスタンス) でなければなりません。 典型的な実装では、クラスの新たなインスタンスを生成するときには "super(currentclass, cls).__new__(cls[, ...])"に適切な引数を指定してスーパクラスの __new__() メソッドを呼 び出し、新たに生成されたインスタンスに必要な変更を加えてから返します。 __new__() が
Java8にlambda構文が入りましたが、これはクロージャーではない、とされています。 では、どのように「クロージャーではない」のか、ちょっと見てみます。 まず、lambdaを返すメソッドを定義します。 public static Supplier<String> createMessenger(String name, String address){ return () -> { return String.format("私は%s、%sに住んでる", name, address); }; } 呼び出すと、こんな感じでSupplierを受け取ります。 Supplier<String> messenger = createMessenger("きしだ", "ふくおか"); このSupplierを実行すると、次のようになります。 System.out.println(messenger.
Rubyのオブジェクト指向は一貫性があってわかりやすいという評判だけれども、オブジェクトを意識しない便利な手続き的な書き方もできるからそれがRubyの本来の姿を分かり難くしているという面もあってその辺でRubyを始めたけど今ひとつ本質的なものが見えてこない人たちもいるんじゃないかと思う今日此の頃ですが皆さんいかがお過ごしですか? それで随分と前に僕がRubyを始めてそんなに時間が経っていないときに書いたブログの記事があってそのことを思い出して、読み返してみるとRubyのオブジェクトを中心にしたちょっとユニークな説明になっていてまあ書き足りない部分もあるけれどもあの頃の知識でよく書けてるじゃないのなどと自画自賛しつつ、これは先の「Rubyを始めたけど今ひとつ本質的なものが見えてこない人たち」の役にも立つのではないかという発想が生まれて、結果ここにその記事群の文体を変えたり間違いを直したり挿絵
PythonやHaskellやErlangにはリスト内包表記と呼ばれる リストの中で新たなリストを生成する構文があるよ 例えばRubyでリストの要素の値を倍にしたい場合は Array#mapを使うよね l = [*1..10] l.map { |i| i*2 } # => [2, 4, 6, 8, 10, 12, 14, 16, 18, 20] これをErlangのリスト内包表記では以下のように書けるんだ L = lists:seq(1,10). [X*2 || X <- L]. % => [2,4,6,8,10,12,14,16,18,20] リストLからXを選び出しそれに2を掛けたものを返す つまり || の左辺には出力となる式を 右辺には限定子を書く X <- LはErlangではGeneratorと呼ぶらしいよ 次にリストから偶数だけを選んで それらを倍にしたい場合を考えるよ Ru
長らくおまたせしました。 (待ってない?) クラスに行こうと思ったのですが、最近関数合成のwordがkernelに昇格して たりするので今回は関数の合成をやりたいと思います。 関数の合成 基本的にFactorはローカル変数を持ちません。 そのため複雑な処理を行う場合には関数の結果をそのまま別の関数に渡してつ ないでいくスタイルになります。 :f ( x -- y ) 1+ ; :g ( x -- y ) dup * ; 1 f g . 4 あるいは 1 [ 1+ ] call [ dup * ] call Factorのプログラムは上記のようにwordをひたすら続ける、すなわち大きな合 成関数を作成する事で実現されています。 上記の例はシンプルですがquotの場合だとcallを呼んでやらないといけないし、 複数の引数をケースもあったりと実際にはそう単純ではありません。 そこでFactorで
Millions of people have learned to code. So can you. Learn Ruby The Hard Way is the same highly popular way for total beginners to finally learn how to code but for the Ruby programming language. Learn Ruby The Hard Way takes you from absolute zero to able to read and write basic Ruby to then understand other books on Ruby. No experience necessary to begin, and you can even try the book out for fr
Last Updated: 2015 - November 2012.- 2009. Kajiyama A Handbook of Programming Using Ruby コピペで学ぶ Rubyでプログラミング入門 (MS Win版) グラフィックス・リテラシ-教育: 「図学 II ・図形情報 II 」科目 修了後のコースウェア 福岡大学工学部図学教室 梶山 喜一郎 A. はじめに この資料集の章は,関心を持ってから読んでください PovRayやR言語のスクリプトに親しんだ受講生には,難しくない. 学習しようと思えば,「Ruby チュートリアル/入門」で検索し,日本の大学やWebの資源を有効に使える.3つ以上の教材に触れてみる.他人のサンプルをコピペ実行. わからない用語や文法は自分で調べる.なんといっても,習うことは型をマネルこと. このハンドブックの小さな目標はプログラミン
暇をみつけては python の型推論をやっている (やろうとしている)。でも、いまだに本当にこれが「原理的に可能」なのかどうか疑問だ…。 http://www.unixuser.org/~euske/offline/memo/cur/cur.html#180812 「原理的に可能」とかについて. まず「原理的に可能」の意味を考える必要がある.「可能」ってなに?なにができたら「可能」なの? 型推論とかのプログラム解析の技術を評価する場合,二つの性質が重要になる.「健全性」と「完全性」.「型推論が健全性を持っている」というのは,「型が推論できたら,そのプログラムは正しい」ということ*1.「型推論が完全性を持っている」というのは,「正しいプログラムは必ず型が推論できる」ということ.MLなんかの型推論は,完全かつ健全である.非常に良くできた型推論アルゴリズムと言える.ただし,型推論アルゴリズムと
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く