タグ

programmingに関するtomoyaのブックマーク (41)

  • bwin·必赢(中国)唯一官方网站

  • Scala的な考え方 - Scalaがとっつきにくいと思っている人へ - ( ꒪⌓꒪) ゆるよろ日記

    Javaな人から見ると、「Scalaって難しい」ってイメージがありますね。俺も最初はそう思ってました。今もですけど。 で、考えてみたんですが、何が難しいって考え方・イディオムになじみがないのが原因かと思ったんです。 ここでは、俺が今までScalaをやってきて得た考え方を紹介します。「Scalaをちょっとやってみたんだけど、とっつきにくくて…」と思われている方は、ぜひご一読ください。 参考資料: Scala入門 - Scalaで書きはじめたJava使い向け - Scala勉強会@東北 Dropbox - 404 神は言われた。「リストあれ。」 Lisperは、リストをどう作るかをまず考えるらしいです。適切なリストが出来たら、プログラムはもうできたも同然だと。同じ考え方は、Scalaでも通用すると思います。 大まかに、こんな流れで考えてます。(リストは最初から与えられることもあるでしょう) 「

    Scala的な考え方 - Scalaがとっつきにくいと思っている人へ - ( ꒪⌓꒪) ゆるよろ日記
    tomoya
    tomoya 2010/03/18
    "神は言われた。「リストあれ。」"
  • はてな的プログラミング言語人気ランキング - Cube Lilac

    この記事で更新していた「基礎文法最速マスター」のまとめは,現在,プログラミング言語「基礎文法最速マスター」ランキング にて更新しています.この記事の更新は停止していますので,最新の結果はそちらを参照下さい. ここ最近,「○○○ 基礎文法最速マスター」と言う記事が流行っていたようです.この各記事の被ブクマ数を見ていると,プログラミング言語毎の(はてな界隈での)人気がよく表れているなーと思ったので被ブクマ数の多い順に列挙してみました*1.尚,調査する際には Perl基礎文法最速マスター - Perl入門〜サンプルコードによるPerl入門〜 の「このエントリーを含むエントリー」と 基礎文法最速マスターぞくぞくキターーー! - 燈明日記 を利用しました. JavaScript 基礎文法最速マスター - なんとなく日記 PHP 基礎文法最速マスター - Shin x blog Perl 基礎文法最速

    はてな的プログラミング言語人気ランキング - Cube Lilac
    tomoya
    tomoya 2010/02/03
    "turing 2010/02/02 23:49 これって言語の人気というより、ブロガーの人気に 影響されませんか?" その通りだろ。じゃなかったら、Emacs Lisp が JavaScript を上回るわけないし。
  • Lisp:S式の理由

    S式は人に優しいか Shiro: Lispの不人気の理由として筆頭に上げられるのが、括弧だらけの 独特の見た目。とっつきにくい、一般的な表記法と違っていてわかりにくい、 等々、様々なことが言われてきました。しかし、 S式を捨てたLispも開発されましたが 流行ったとはいい難く、Lispな人々はいまだに括弧に固執しているかのようです。 S式のメリットをLisperに尋ねれば、エディタがどうの、マクロがどうの、といった 回答が真っ先に返って来ると思うんですが、そういう理屈をいくら理解しても S式がダメな人がS式を好きになったりはしません。どうも、もっと根的な 感覚に大きな隔たりがあるような気がします。非Lisperから理解しがたい、 Lisperの持つ感覚とはどんなものなんでしょうか。Lisp脳から見た世界は どんなものなのでしょうか。 構文木を人間が書く? S式は言ってみれば言語の構文木そ

    Lisp:S式の理由
  • Haskellと副作用 - あどけない話

    よく、Haskellには副作用がないと言われるが、それは間違いだ。確かに、Haskell には状態の変化(あるいは再代入)という副作用はない。しかし、入出力という副作用はある。この記事では、Haskell の副作用に対して、命令型プログラマーにすっきりと理解できる説明を試みたいと思う。 間違った方向への第一歩 Haskell の副作用に関する典型的な説明は、こんな感じだ。 Haskell にはあらゆるレベルで副作用がない。そのため、遅延評価が可能になる。遅延評価では、コードが記述順に実行/評価されるとは限らないので、入出力と相性が悪い。そこで、IO モナドが導入されている。IO モナドのおかげで、入出力に関するコードは記述順に実行され、外界に作用できる。 この説明を聞いて理解しろという方が無理である。説明が苦しい最大の理由は、Haskell にはあらゆるレベルで副作用がないと、間違った一歩

    Haskellと副作用 - あどけない話
  • ゲームプログラム

    検索 ポーカーゲームの作り方 ゲームの流れ[2002/09/07] 山を作る[2002/09/07] 役を判定する[2002/09/07] 勝敗判定[2002/09/07] コンピューターの思考ルーチン[2002/09/07] 3Dダンジョンの作り方 相対座標と絶対座標[2002/09/07] 3Dな画像の表示方法[2002/09/07] 戦術SLGの作り方 移動範囲の求め方[2004/06/27] コンピュータの思考ルーチン[2004/07/04] コンピュータの思考ルーチン2[2004/11/28] 戦術型SLGのゲームバランス[2005/09/04] ブレゼンハムの線分描画アルゴリズム[2005/09/10] A*による経路探索[2005/09/10] 麻雀の作り方 あがり判定[2004/07/11] 役判定[2004/07/19] コンピュータの思考アルゴリズム(準備中) シューテ

  • Haskellには副作用がないのか? - あどけない話

    ある人は、Haskell には副作用がないと言う。また、別のある人は Haskell には副作用があると言う。Haskell を学ぶ者にとって、こういった意見のい違いが、Haskell を得体の知れない言語にし、学習の障壁となっているかもしれない。そこで、この記事では、なぜこのような意見の相違が生まれるのかについて説明したいと思う。 向心力か遠心力か? 僕は高校三年になって受験勉強をするまで、物理の運動方程式が得体の知れないものに思えていた。 例として円運動を考えよう。ある説明では、円運動をしている物体には向心力が働いていると説明されている。また別の説明では、遠心力が働くと説明されている。一体、どういうことだろう? 受験勉強でたくさんの問題を解いて、ようやく分かった。これらの説明はどちらも正しい。すなわち、観測者がどこにいるかによって、説明の仕方が異なるのだと。 観測者が円運動をする物体

    Haskellには副作用がないのか? - あどけない話
    tomoya
    tomoya 2009/06/29
    "僕はカタカナを使って説明した気になっている人は説明が下手だという信念があるので、日本語に直そう。" ワロタw
  • 遅延評価とIO - あどけない話

    僕は今、プログラマーとしての幸福感に満たされている。遅延評価を習得できたと思えるからだ。 遅延評価 なぜ関数プログラミングは重要かには、遅延評価の利点を以下のように説明している。 停止条件はループの体とは切離すことができ、強力なモジュール化が可能となる。 例として載っている「ニュートン-ラプソン法による平方根」は、若干難しいので、簡単な別例を示そう。Haskell には、第一引数の数だけ、第二引数を繰り返す関数 replicate がある。 > replicate 3 'a' → "aaa" これを普通に実装するとこうなる。 replicate 0 c = [] replicate n c = c : replicate (n-1) c Haskell 以外で実装する場合、きっとループを使うだろう。ただ、ここでは再帰かループかは問題ではない。 問題は、「結果を作る仕事」と「終了条件を判断

    遅延評価とIO - あどけない話
  • 2007-10-29 - あどけない話 JavaScript Lint

    これまで、JavaScript の構文チェックには JSLint を使ってきました。かなり強力なんですが、JavaScript で書かれているためブラウザー越しに使わなければならない、そして速度が遅いという問題がありました。 コマンドラインから使える構文チェッカとしては Rhino の js があります。しかし、これは僕の要求を満たしてくれるほど、チェックが厳しくありませんでした。 MacPorts をいじっていて、JavaScript Lint なるものがあることに気付き早速使ってみました。Crockford先生についても触れていることから分かるように、素晴らしいです。 使い方 コマンド名は、jsl です。JavaScript ファイルや script タグを含んだ HTML ファイルを引数 -process の後に渡します。 % jsl -process prototype-1.6.0

    2007-10-29 - あどけない話 JavaScript Lint
  • プログラミングに適したフォント10 | エンタープライズ | マイコミジャーナル

    SitePoint: New Articles, Fresh Thinking for Web Developers and Designers プログラマはエディタ選びに熱中することがある。またエディタで使うフォント選びに熱中することもある。大抵の場合は文字の判別がつけやすいかどうか、インデントがみやすいかどうかを重視するため等幅フォントが採用されることが多い。しかし一度に多くの文字を閲覧できるという理由でプロポーショナルなフォントを選択することもある。 どのフォントを選べばいいか迷ってしまうところだ。そこでCraig Buckler氏がSitePointに掲載した10 of the Best Programming Fontsに注目したい。プログラミングに採用できるフォントとして10個のフォントが紹介されている。フォントの表示例が画像で掲載されており、比較もしやすい。紹介されているフォ

  • 第7回 関数脳のつくり方 First Season

    大手SIベンダにてSEやPMやアーキテクトとして勤務したのち,現在は株式会社豆蔵のチーフコンサルタント。主に超上流のプロセスである要求開発やオブジェクト指向,アジャイル開発のコンサルタントとして活躍中。開発の現場にこだわり,開発の現場を少しでもよくしたいと日夜奮闘している。要求開発アライアンス 執行委員。著書に『オブジェクト脳のつくり方』や『eXtreme Programming実践レポート』(ともに翔泳社発行。後者は共著)などがある。 この連載も「刺激的」な内容が続いたと思いますので,今回は関数型のコーディングに普段なれていない皆さん向けの内容をお届けします。 そんなことを書くと,まるで私も関数型バリバリ…みたいですが,全くそんなことはありません。今までは仕事Javaばかりで,昨年羽生田さんがやっているScalaに興味を持って取り組んで以来,ずっと「関数型」の考え方がよくわからなくて,

    第7回 関数脳のつくり方 First Season
  • 正規表現を超える - あどけない話

    まずは、Audrey さんが言った Haskell の殺し文句を思い出して頂きたい。 正規表現ベースのパーサはメンテナンスしにくいのに気づいた? Parsec を使って 15分で Perl6 の完全なパーサを書く方法を勉強しましょう。 15分というのは誇張が入っていると思うが、正規表現が保守しにくく、Haskell の Parsec は強力で保守し易いのは事実だ。その理由を Perl と Haskell のコードを示しながら説明してみたいと思う。 Perl を愛する方に:この記事は Perl を攻撃するために書いたのではない。Perl を選んだのは、正規表現を広めた言語であり、僕がそれなりに Perl のコードを書けるためである。この記事の目的は、正規表現よりも関数型パーサー(Parsec)の方が優れていると示すことだ。 例題 この記事では例題として、IPv4 アドレスを解析する関数を書く

    正規表現を超える - あどけない話
    tomoya
    tomoya 2009/03/10
    内容もさる事ながら、日本語も美しい。
  • On Lisp

    Paul Graham著,野田 開 訳 前書き 拡張可能なプログラミング言語 関数 関数的プログラミング ユーティリティ関数 返り値としての関数 表現としての関数 マクロ いつマクロを使うべきか 変数捕捉 マクロのその他の落し穴 古典的なマクロ 汎変数 コンパイル時の計算処理 アナフォリックマクロ 関数を返すマクロ マクロを定義するマクロ リードマクロ 構造化代入 クエリ・コンパイラ 継続 複数プロセス 非決定性 ATNを使ったパージング Prolog オブジェクト指向Lisp パッケージ 翻訳者 野田 開のサイト 原著者Paul Graham氏のサイト Copyright (c) 2003-2005 野田 開     NODA Kai <t50473@mail.ecc.u-tokyo.ac.jp>

  • M.Hiroi's Home Page / xyzzy Lisp Programming

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • Cyanを設計した高校生、5カ月で5つの言語を習得

    読者の皆さんは、「Cyan」(サイアン)という言語をご存じないかもしれない。Cyanは、Lispのマクロを持ち、Python風のインデントによってブロックを表すプログラミング言語。2008年の春、林拓人という1人の高校生によって設計された。 連載第1回の竹内郁雄氏が「開発」の天才、第2回の五十嵐悠紀氏が「発想」の天才とするならば、今回の林氏は「プログラミング言語」の天才だ。 林氏がプログラミング言語に初めて触れたのは中学3年の夏休み。そこから冬休みまでの5カ月間に、5つのプログラミング言語を習得した。その後もいくつかのプログラミング言語を学ぶ中、林氏の興味はWebサービスなどのものづくりには行かず、ひたすら言語自体へと向かっていった。 高校2年の春、自身でプログラミング言語Cyanを作り上げた。Cyanを設計した林氏は、「U-20プログラミング・コンテスト」(以下、U-20プロコン)で経済

    Cyanを設計した高校生、5カ月で5つの言語を習得
    tomoya
    tomoya 2009/01/19
    僕も予々、文系の方がプログラマに向いていると思っている。日本語どうのじゃなくて、論理的・構造的に物事を理解できる能力が高いという点でだ。
  • Emacs Lisp のパターン - あどけない話

    デザイン(設計)パターンという程のことはない、Emacs Lisp のパターンを思いつくままに書きます。心は、 高階関数を書こう マクロを書こう です。 mapcar mapcar は、引数に関数をとる高階関数のよい例です。リストを取り、それぞれの値を加工して、新しいリストを返すパターンのときは、mapcar を使いましょう。 (mapcar '1+ '(1 2 3 4)) ;; => (2 3 4 5) mapcar には、自分のさせたい仕事を実装した関数を渡しましょう。 (defun f(x) (1+ (* x 2))) (mapcar 'f '(1 2 3 4)) ;; => (3 5 7 9) mapcar を連結しましょう。(オブジェクト指向でのメッセージの連結に似ていますね。) (mapcar '1+ (mapcar (lambda(x) (* x 2)) '(1 2 3 4)

    Emacs Lisp のパターン - あどけない話
  • Cyan, Yet Another New language - takuto_hの日記

    プログラミング言語Cyanを公開しました。 これは、私がU-20プログラミング・コンテストに応募し、個人部門で賞をいただいた作品です。 Cyanは「さいあん」と読みます。Lispのマクロを持ち、Python風のインデントによってブロックを表します。インスタンスベース・オブジェクト指向や継続といった概念を取り入れています。 以下に簡単な紹介を載せます。詳しい説明は、Cyanリファレンスマニュアルなどをご覧ください。 S式とマクロの分離 Cyanのもっとも大きな特徴は、LispのS式とマクロの分離を試みたことです。 mac(while)^(test, body): `loop: if(!?test): break() begin(?body)これは、準クオートを用いて記述したwhileマクロです。単純なマクロはこのように簡単に記述できます。 これが可能なのは、式がすべてオブジェクトだからです。

    Cyan, Yet Another New language - takuto_hの日記
  • Cocoa はじめの一歩

    Cocoa はじめの一歩    はじめに  MacOSXになってからプログラミング環境が無料で手に入るようになりました。学割でも数万円はするソフト(CodeWarriorなど)を苦労して買っていた昔とは隔世の感があります。 せっかくタダなんだからちょっとやってみよう!と興味を持たれる方は多いのではないかと思います。 現在Cocoaに関して優れたがいくつか出版されていますが、どれもプログラミング、特にCに関して基礎的な知識が要求されます。ではまずはCを勉強してみよう、と思ってもWindowsをベースにした説明ばかりで(コードそのものは同じなのですが)完全な初心者には「Macではどうすれば良いの?」と意外に敷居が高いのが現状です。 ここでは「完全な0から」始めたい人向けに簡単なガイドを提供したいと思います。 なお一概にプログラミングといっても現在Macデスクトップアプリケーショ

  • func09 » コリン・ムック「今から始めるActionScript 3.0」に行ってきました

  • まつもとゆきひろ×結城浩,Rubyを語る - 特別対談:ITpro

    結城浩 (ゆうき ひろし) JavaPerlなどの書籍でおなじみの著者。 最新刊は「数学ガール」。 このイラストは結城浩さん書き下ろしのもの。 http://www.hyuki.com/ 日経ソフトウエア2007年8月号,特集のテーマはプログラミング言語のRubyです。「Ruby大作戦」と題した特集の中で,Ruby作者のまつもとゆきひろ氏と,JavaPerlの書籍や誌連載の執筆,Web上での活動で著名な結城浩氏の対談を設けました。以下は,日経ソフトウエア2007年8月号に掲載した対談の全内容です。ぜひお楽しみください。なお,この対談では,お二人のファンで日経ソフトウエア特集「Ruby大作戦」のPart5にも寄稿いただいた松岡浩平氏にも同席していただきました。この対談でRubyに興味を持たれた方は,ぜひ日経ソフトウエア2007年8月号をお読みください。 はじめてのRuby ――結城さ

    まつもとゆきひろ×結城浩,Rubyを語る - 特別対談:ITpro