Ruby 1.8.7ではRuby 1.9からのbackportがとても多い。つまり、Ruby 1.9のあのメソッドがRuby 1.8でも使えるようになったということだ!! これがすごいという機能がもりだくさん、ちょっと大人になったRuby 1.8をお楽しみに。 Enumeratorは組み込みになり、eachなどのイテレータメソッドはブロックをつけないとEnumerable::Enumeratorを返すようになった。おかげでブロック付きメソッドの柔軟性が飛躍的にアップ! expectationsテスティングフレームワークによるテストで書いているので「gem install expectations」してから実行してみよう。手軽にユニットテストが書けるからおすすめ。書式は…見ればわかるよねw ChangeLogで現在からRuby 1.8.6リリースまでを読んだので、ほとんどカバーしていると思わ
■ Perl基礎文法最速マスターをだいたいそのまま、Rubyに置き換えてみました。 他の言語をある程度知っている人はこれを読めばRubyの基礎をマスターしてRubyを書くことができるようになる…かも知れません。無保証です。 参考: オブジェクト指向スクリプト言語 Ruby リファレンスマニュアル (1.9.2) オブジェクト指向スクリプト言語 Ruby リファレンスマニュアル (1.8.7) ■ 1. 基礎 インタラクティブRuby (irb) irbを使うと、Rubyのプログラムを簡単に練習することができます。 /Users/yhara $ irb irb(main):001:0> puts "hello" hello => nil irb(main):002:0> 1 + 1 => 2 以下の説明は、irbを起動して、自分で試しながら読むと習得が早いと思います。 表示 (print,
Programming with C Blocks On Apple Devices by Joachim Bengtsson What are Blocks? What are Blocks Good For? Getting Started On and for Mac OS X 10.6 Snow Leopard, or for iOS 4 On Mac OS X 10.5 Leopard or for iPhone Blocks in C Syntax and Usage Memory Management Blocks in Objective-C Blocks and ARC (Automatic Reference Counting) Blocks in C++ Block Goodies References and Additional Sources Version H
Googleが Goという新しいプログラミング言語 を出したようで。早速、インストールして軽くドキュメントを流し読みしてみました。 英語なんて読みたくないよ、という人もいるかもしれないし、誰かの役に立つかもしれないので自分用メモおいときます。完全に自分用なんである程度他の言語の知識がある人向けな上、ざっくり流し読みなんで間違ってるかも。 どんな言語? ネイティブコードを吐く、コンパイル型。 速度はCレベル。 GC搭載。ポインタはあるけど、ポインタ演算はできません。 各種アーキに最適化された、それぞれのコンパイラセットを持ちます。例: 6g, 6l : amd64 8g, 8l : i386 linux, mac, naclに対応。 動的型言語と静的型言語のおいしいとこどり。 concurrent処理が組み込まれてます。 個人的雑感 こんな言語設計思想かなあと感じたり とにかく、シンプルな言
思うに、LISPには名著が多い。100年に一度の名著であるSICP本*1は言うに及ばず、 ハッカーと画家 コンピュータ時代の創造者たちで有名なPaul Graham氏のOn Lisp。 あと、日本のLispハッカーとして名高い竹内郁雄先生の初めての人のためのLISP (ソフトウェアライブラリ (3))。この本は、何年も前に絶版になっているが、目次からして、なにやらおかしい。 [目次] 1 初めての人のためのLisp 2 CARとCDRで世間を渡れば権兵衛もたじろぐ 3 解釈は評価なり・・・辞書なくして世は渡れず 4 基本関数を修了するや,突然関数定義 なんと大それた・・・ 5 今度はcond,再帰と再起を混同せぬように 6 またも再帰するから再帰なのだ 7 Go,go,go・・・,do,do,do・・・,loop,loop,loop・・・, やっぱりOは丸い 8 Lispの御本尊のお出まし
This article describes a technique for overriding the equals method that preserves the contract of equals even when subclassses of concrete classes add new fields. In Item 8 of Effective Java1, Josh Bloch describes the difficulty of preserving the equals contract when subclassing as a “fundamental problem of equivalence relations in object-oriented languages.” Bloch writes: There is no way to exte
Code Conventions for the Java TM Programming Language Revised April 20, 1999 The information on this page is for Archive Purposes Only This page is not being actively maintained. Links within the documentation may not work and the information itself may no longer be valid. The last revision to this document was made on April 20, 1999 Introduction 1.1 Why Have Code Conventions 1.2 Acknowledgments F
Haskellは,次のような特徴をもった関数型言語です: 強力な型システム パラメータ多相のサポート 型クラスによるアドホック多相 非正格で純粋な関数型言語 関数は非正格 遅延評価:無限リストなどのデータ構造の扱いが容易 純粋:参照透明性が保存され,副作用がない モナドを用いたプログラミング 今回は,Haskellプログラムの基本要素である関数と型について, 順を追って解説していきたいと思います. まずは,おおまかな字句構造から: コメントの書き方については,C, JavaやMLのそれと変わりません. それぞれの関数定義や宣言は,セミコロン ';' で区切られ,ブレース '{}' でグループ化されます. しかし,Haskellのレイアウトという構文により, セミコロンを省いた記述が可能です. いまのところ,行頭に文字があったらその行から新しい宣言 くらいに思っておけば大丈夫です.
はじめに P.Graham著『On Lisp』に示されているように、現代的なLispプログラミングでは静的スコープ(字句的スコープ)と末尾呼出し(末尾再帰を含む)の最適化のもとでのマクロが重要な意味をもちます。しかし、今まで処理系作成の初心者が内部に手を入れやすい手頃な大きさの実装が事実上ありませんでした。 ここでは、そういったモダンな特徴を備えた小さなLispインタープリタL2LispをRubyで作ってみます。L2Lisp(Little Lambda Lisp)は、Lispの理論的背景であるラムダ算法(lambda calculus)に対し、有力なLisp方言であるSchemeと同程度に忠実である一方、その他の点では広く普及しているEmacs Lispのサブセットとしたオリジナルの小型Lispです。 実行例としてtak関数を定義し、実行する様子を示します。Ruby以外に必要なのはL2Li
変数の宣言の強制 変数のスコープ ループからの脱出 ファイル入出力 print 文関係 引数の取得 標準入出力 環境変数の取得 サブルーチンとの引数のやりとり foreach 文 文字列の連結 文字列のマッチング、比較 文字列の置換 文字列の分解 文字列の統合 文字列の処理 配列 2 次元配列 正規表現 if 構文 連想配列 ( ハッシュ変数 ) rewind eof find_header int と剰余 goto 文 ディレクトリの操作 ファイルテスト演算子 特殊変数 シグナル処理 ヒアドキュメント 配列全体に作用するコマンド ソート 省略形 入出力のバッファリングをしない 配列の要素のシフト 処理内容をファイルに落としてメールする system 文 ◆◆ 変数の宣言の強制 ◆◆ ファイルの先頭に use strict; と書くと、そのファイル中のメイン関数(関数宣言なしに 書き始め
Click below to go directly to a specific section: History | Significant Language Features | Areas of Application | Sample Programs Related Links | Printed References | History Interest in artificial intelligence first surfaced in the mid 1950. Linguistics, psychology, and mathematics were only some areas of application for AI. Linguists were concerned with natural language processing, while p
Table of Contents Introduction - Welcome To Eiffel 1 - Basic Concepts and Syntax 1.0 Classes and Objects 1.1 References 1.2.1 Declaring Expanded Objects 1.2 Expanded Types 1.3 Features 1.3.1 Attributes - Variables and Constants 1.3.1.1 Unique Attributes 1.3.1.2 Constants 1.3.2 Routines - Procedures and Functions 1.3.2.1 Creation Routines 1.3.3 Local attributes
第0回 あらためてRuby入門 まつもとゆきひろ氏自身による「Ruby入門」をお届けします。日経Linuxの連載開始前の特別企画(2005年4月号)として,Rubyが他のスクリプト言語やオブジェクト指向言語とどこが違うのか,なぜ便利なのかを中心に解説してもらったものです。 ● 基本と他言語との違い ● 実装とRuby誕生の秘密 第1回 プログラミングとオブジェクト指向の関係 プログラマを目指す人々の中にも,「オブジェクト指向は難しい」とか,「なかなか分からない」という印象を持つ方が多いようです。そこで,Rubyを題材にオブジェクト指向という考え方について説明していきます。 ● その1 ● その2 ● その3 第2回 抽象データと継承 オブジェクト指向プログラミングを構成する3原則のうち,前回は「ポリモーフィズム」を学びました。今回はオブジェクト指向の歴史を復習した後,残りの「データ抽象」と
最近、Ruby関西に行ってRubyの勢いを感じている。 そんな時に、Javaの最近の動きを聞く機会があった。 Java6やSeasarの話を聞くと、JavaがC#やRailsの影響を受けているように聞こえた。 でも、話しているうちに、「やっぱりRubyよりもJavaが好きなんだ」と気づいた。 その理由は、「JUnitのようなテスト駆動ツールが揃っている」点に尽きる。 そこで「テスト駆動の観点から眺めたJavaの利点とプログラミング思想」について考察してみる。 【1】テストを意識するとメソッドの行数が自然に短くなる プログラミング初心者のプログラムを見ると、行数がやたらと長く、長いプログラムを書き上げた後からデバッグし始める。 だから、いつまで経っても動かない。 プログラミング中級者になると、行数は長いままだが、少しずつ書いてはプリント出力してデバッグで動作を確認し始める。 この
↓で紹介されてた新しいプログラミング言語を習得するための15の方法についてhttp://forums.programming-designs.com/viewtopic.php?pid=3482I've working knowledge of a bunch of programming languages but job demands to learn a new language frequently in a short time. Instead of reading hundreds manual/book pages, I quickly read 10-15 pages of tutorial or primer. (As you know google is the best search engine to look for such stuff). I keep p
はじめに 2012年5月現在、最近、このページはあまり更新できていません。すみません m(_ _)m。 D言語友の会 が、長期間ちゃんと更新されている D 言語関係の日本語サイトとしておすすめです。 こんにちは。ここは、プログラミング言語 D (D Programming Language, 通称D言語)を紹介するサイトです。 すでに Java など一般的なプログラミング言語の経験がある読者を前提として書かれています。 一部古いページを除いて、基本的に、D 2.x 系統の言語仕様をベースに解説しています。 → 更新情報は RSS で 目次 1. Dってどんな言語? サンプルコード色々 D言語を大きくカテゴライズすると、「C風の構文を備えた」 「静的型」の「ネイティブコンパイル」言語と いうことになります。オブジェクト指向やテンプレートメタプログラミングなど、 幾つかのパラダイムをサポートし
「王女アテー姫を含めてハザールの男女は、 この能力によって朝ごと変身を済ませ、 そのたびに、見たこともない斬新な顔で立ち現れる。 だから近親者同士でさえ見分けがつかないほどだ。 旅行者の見聞はこれとはまったく異なり、ハザールの顔つきはどれもそっくりで、 しかも歳を重ねても容貌が変わらない。それゆえ人違いの混乱や厄介が絶えない。 どちらにせよ、結果は同じことで、ハザール族の顔はまず覚えられないし、 覚えても無益となる。」 ミロラド・パヴィチ「ハザール事典」 Lispには数限りないほどの方言がある (例えば、 http://dreamsongs.com/NewFiles/Hopl2Slides.pdf とか参照)。 そのなかで普及している Lispというと、 Scheme、Common Lisp、Emacs Lispの3つだろう。 ユーザの多さでいうと、多い順に Emacs Lisp、Comm
String#stripは文字列前後の空白を削除します。 " Hello, world! ".strip #=> "Hello, world!" String#strip!は文字列前後の空白を削除します(破壊的メソッド)。 >> " Hello, world! ".strip => "Hello, world!" >> "\t\t\tHello, world!\n\n\n".strip => "Hello, world!" >> s = " Hello, world! " => " Hello, world! " >> s => " Hello, world! " >> s.strip => "Hello, world!" >> s => " Hello, world! " # String#strip は非破壊的 >> s.strip! => "Hello, world!" >> s =
Before Java Specification Request (JSR) 223, Scripting for the Java Platform, (and its predecessor, the Bean Scripting Framework, or BSF), many languages were already communicating with Java. Some languages would take textual code as input from a Java program and return the evaluation result back. Others would keep references to objects in a Java program, invoke methods on those objects, or create
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く