タグ

programmingに関するtakkan_mのブックマーク (64)

  • 2007-09-15

    プログラムは計算機を前提に書かれるのだから、計算機の構造と動作を理解していることは重要であることは間違いない。プログラムは仕様を満すために書かれるのだから、仕様の形式的記述と検証について理解していることは重要(かもしれない)。 (用語、概念をいいかげんに使っているので絶対に真にうけないこと!!) (マシン語を知らない子ども達 - UEI shi3zの日記とこれに対する反響を読んで書いたものです) あまりにも当たり前過ぎて21世紀に入ってから言葉にしたことはあまりないのですが,当然のことながら,プログラムというのは,Curry-Howardの対応を理解して、初めて「書ける」と言うものです.プログラムが書ける,という状態は「Curry-Howardの対応を理解している」という状態の延長線上にあるべきで,Curry-Howardの対応を理解していないということは,プログラムの仕様を理解していない

    2007-09-15
  • 頭の中にプログラムを入れる

    Paul Graham / 青木靖 訳 2007年8月 いいプログラマは、自分のコードに集中しているとき、それを頭の中に保持しておくことができる。数学者が取り組んでいる問題を頭の中に入れているのといっしょだ。数学者は学校で子供たちが習っているように、紙の上で問題の解いているわけではない。彼らは多くの部分を頭の中でやっているのだ。問題の領域をよく把握しようと努めることで、普通の人が記憶にある育った家の中を歩き回れるように、数学者は頭の中で問題空間を歩き回ることができる。最高の状態で行われるプログラミングもそうだ。プログラムの全体を頭の中に入れたなら、それを思い通りに操れるようになる。 これはプロジェクトのはじめにおいては特に価値がある。それはプログラムを作り始めるときに最も重要なことが、やっていることを変えられるということだからだ。単に問題の解き方を変えるという ことではなく、解いている問題

  • 仕様に基づいたテストスイーツを書く - Inemuri nezumi diary(2007-08-22)

    _ 独りで始める Concrete and Specific Programming(CSP) エクストリーム・プログラミング(XPとして知られている)は、ビジネス側と開発側の両者が共通の達成可能なゴールに集中するための、ビジネス及びソフトウェア開発の規律である。 Kent Beck [XPエクストリームプログラミング実行計画(The XP Series), Kent Beck and Martin Fowler, Foreword by Tom DeMarco 序言より引用] このエントリでは、開発側の夢を実現するためのプログラミング技術 Concrete and Specific Programming を提唱します。 趣味としてのプログラミングは、ビジネスとは無関係です。それは、人生に与えられた有限の時間の使い道として、あなたが選んだ選択肢です。なぜ、プログラミングを趣味とするのか、

  • プログラマとして言語を愛することができる幸せ - 日記を書く [・w・] はやみずさん

    先日のLL魂後の飲み会の席にて、id:amachangとかid:masa_edwとかid:scinfaxiと話をしていたときに、途中で話が切れてしまっていたことをWebの虚空に向かって叫んでみる。 Scheme(Gauche)は、自分にとっては帰るべき家のようなものだ。プログラミングをするにしても、Gaucheだけに留まることはできないし、留まる気もない。C、JavaPHPRuby、、、色々な言語を必要に迫られて使ったり、あるいはFortressみたいな言語に冒険してみたりもする。でも、それは帰るべき家があるからこそ冒険ができるんだ。自分が初めて心から好きになれた言語であり、最もいごこちのよい言語があるからこそ、プログラミングが楽しい。大変なときは、GaucheのREPLに帰ればほっと一息つくことができる。 なぜSchemeが好きなのか、ということに理由はない。便利な機能や、Schem

    プログラマとして言語を愛することができる幸せ - 日記を書く [・w・] はやみずさん
  • LLXX - MoriMoin

    こんなLLはXXだ 高橋メソッド版 言語仕様 中括弧とインデント両方必須 for x in lst{ hoge(x) --> Syntax Error 全部の変数の型を明示 Integer x [Integer] lst Integer -> Integer hoge for x in lst: hoge(x) よめない(whitespace 全部大文字 FOR X IN LST: HOGE(X) 制御がgotoとifだけ max = len(lst) i = 0 loop: if i > max: goto eloop hoge(lst[i]) i += 1 goto loop eloop: ifが後置だけ hoge(x) if x; ASCIIにない記号が入ってる π=3.1415 ユーザーが俺だけ ( と { と [ が同じ意味だ dict_user{func_h

    takkan_m
    takkan_m 2007/06/25
    それなんてHaskellっていうのがいくつか
  • Functioal Programming IAT

    IAT とは Implicit Association Test の略で、潜在意識をはかる心理テストだそうです。 Functinal Programming IAT とは 関数型指数 (潜在的な関数型プログラミングの嗜好度) をはかる IAT のつもりです。 免責事項 どんな結果が出ても作者は責任を取りません。テスト結果はサーバに保存され、後で統計処理を施した上で公開される可能性があります。その際は個人が特定されないような形にしますが、作者のミスなどで生データが漏れ、「あいつ関数型人間なんだぜー」などと後ろ指をさされるなどしても責任は取りません。これに同意できる人だけやってください。 テスト

  • Karetta|Gaucheプログラミング|「Lisp脳」の謎に迫る - Schemeプログラマの発想

    この原稿の最新版について この原稿に加筆した最新版が書籍「プログラミングGauche」に収録されています。 引用や紹介をされる方はなるべく書籍収録版を参照してください。 他の言語のプログラマがSchemeプログラムを書くとき、 どうしても発想が手続き的(procedural)になりがちです。 LispプログラマやSchemeプログラマの発想は手続き的な発想とはどうも違うらしい、 ということは分かるのですが、具体的に何が違うのでしょうか? ここではこの謎に迫ってみましょう。 実例 例えばこんな例題があります。 1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。 どうしてプログラマに・・・プログラムが書けないのか? (原題: Why

    takkan_m
    takkan_m 2007/05/15
    激しく同意
  • ブラウザ上で簡単プログラミング?ちょっと期待の『LILY』

    ドットインストール代表のライフハックブログ

    ブラウザ上で簡単プログラミング?ちょっと期待の『LILY』
  • TopCoderで世界と渡り合う日本IBMの異才――夷藤勇人

    もしあなたが美しい(あるいはトリッキーな)コードが飛び交う世界を知りたいと願うならそれはTopCoderに参加することで容易に実現することができる。このTopCoderに参加している数少ない日人で、生涯プログラマーを宣言する人物にTopCoderの魅力を聞いた。 世にハッカーと呼ばれる人は数多く存在すれど、日常生活においてわたしたちがそうした人たちのコーディングを目の当たりにする機会はまれである。 しかし、美しい(あるいはトリッキーな)コードが飛び交う世界を知りたいと願うならそれは容易に実現することができる。そこには国籍、年齢、過去の栄光……そのいずれもが何の意味も持たない、コードのみが支配する世界が広がっている。 そんな世界の1つとしてTopCoderが挙げられる。世界中からトップレベルのプログラマーが参加するプログラミングコンテストとして知る人ぞ知るTopCoder。日ではいまひと

    TopCoderで世界と渡り合う日本IBMの異才――夷藤勇人
  • コンピュータ関連名言(迷言)集:Geekなぺーじ

    コンピュータ関連名言(格言?)を集めてみました。 「computer quotes」や「IT quotes」などの単語で検索してみましたが、そこらじゅうに同じようなサイトがあり、どれがオリジナルだかわかりませんでした。。。 いくつか楽しいと思ったのをピックアップしてみました。 他にも色々あったので、興味のある方は検索をしてみて下さい。

  • 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
  • キミのコードが汚い理由 ― @IT情報マネジメント

    リスト1は、同じ処理を繰り返すようなコードで初心者プログラマーがよく使う幼稚なスタイルで書かれている。必ずしも複雑ではないが、筆者には散らかっていて効率が悪く見える。リスト2の方が複雑な条件になっているが、Javaを理解していれば、かなり読みやすい。唯一疑問を抱くかもしれないとしたら、最後の「else if」の中にある条件の最初の部分だけだ。このクローズに来るということは、どちらかのプレーヤーが勝ったことを意味する。 いずれのインプリメンテーションも間違ってはいない。実際、これらはどちらも非常に小さく、つまらない例にすぎないので、これらのリストでコードがいかにクリーンか論ずるのはあまり有益ではない。ただ、何をもってインプリメンテーションがクリーンなのかについて読者の興味を深めることはできるだろう。 クリーンなコードについて扱った記事、Webサイト、書籍は多数存在する。何をもってコードをクリ

  • Shiro:プログラマへの64の質問への回答

    元の質問は YukiWiki:プログラマーへ64の質問 にあります。 突っ込み歓迎。突っ込みはハイフン三つ(---)で書いてくことにしましょう。 0.プログラマは何事も0からスタートするべきだと思いますか? 内部表現はそれでいいですが、外部表現は相手に合わせましょう。 入力には寛容を。出力には厳格を。nobsun なるほど。いい言葉だ。Shiro でも、0 vs 1 みたいな排他的なものに、どうやって寛容を導入するのやら 戯 1.プログラマの定義は何でしょうか? 人に使ってもらえるプログラムを書く人。 2.あなたがいつもやることとは? C-x C-s  (作業途中のセーブ) あるある。そして、 mew を使ってると、無意識に i を連発。yari 今使おうとするツールのSave手段をまず「身に付けて」から作業開始。命綱は最初に確認するっしょ。 戯 3.あなたが絶対やらないことは? ログを書

  • Y Combinator - LoveRubyNet

    $Id: ycombinator.html,v 1.6 2002/06/27 23:37:39 aamine Exp $ [ruby-list:35058] に刺激を受けて Y combinator を解読してみた。 こんなもん読むくらいなら以下の参考ページを読んだほうがいい。 参考にした (というかほとんどそのままな) ページ (英語) http://www.ececs.uc.edu/~franco/C511/html/Scheme/ycomb.html 動機 再帰関数は再帰するときに自分自身を名前で呼ぶのが普通である。 これをなんとかして名前を使わず、関数そのものを呼ぶように させたい。 求めかた まず単純な fact (階乗) を以下に示す。言語は Scheme である。 (define fact (lambda (n) (if (zero? n) 1 (* n (fact (- n

  • PHPやJavaのJSPやRubyのeRBのクールじゃないところ - 矢野勉のはてな日記

    Java, PHP, Ruby, Wicket この話題はPHP限定でもないので上の記事とは切り離しました。PHPのいいところを褒めてるところに書くと、褒めたい意図が壊れてしまうので。 symfonyの10分デモを見てて考えたことがきっかけではあるんだけど、実はRuby on Railsの勉強でを読んでた時にも思ったこと。彼らはHTMLファイルにコードを書くことをなんとも思ってないんだね。もちろん、プログラマからすればその方が早いのかもしれないけどね、私には「HTMLはプログラマのものなの?」という思いがあります。 PHPRuby on RailsもeRB使ってる関係でそういう気があるんだけど)はなんでもかんでもHTMLページに書いちゃう傾向があるのだけども、仕事でデザイナの主張を聞くこともある身としては、HTMLにコードを書くことはちょっとこれからのウェブ開発フレームワークとしては受

    takkan_m
    takkan_m 2006/11/19
    PHPは別として、ERBなんかは使う人によってはテンプレートがプログラムのソースになってしまうからなぁ。MVCできっちりわけてつくれてればいいんじゃないかと
  • 継続 - Wikipedia

    この項目では、プログラムの継続について記述しています。「継続」の語義については、ウィクショナリーの「継続」の項目をご覧ください。 計算機科学における継続(けいぞく、continuation)とは、プログラムを実行中のある時点において、評価されていない残りのプログラム(the rest of the program)を表現するものであり、手続き(procedure)あるいは関数(function)として表現されるものである[1]。 継続に相当する概念は1960年代初頭から存在しており、Algol 60のコンパイラの実装[2]などの文献にたびたび登場していたが、継続の利用に関する最も早い記述は、1964年のアドリアン・ファン・ワインハールデン (en:Adriaan van Wijngaarden) によるものである[1]。 概要[編集] 計算一般における継続[編集] Schemeによる次の式

  • gotAPI.com :: documentation search engine

    このドメインを購入する。

    takkan_m
    takkan_m 2006/11/03
    すげーよこれ
  • Pragmatic Bookshelf: By Developers, For Developers

    Test-Driven React 2 Find Problems Early, Fix Them Quickly, Code with Confidence Learn the right way to do test-driven development with React. You'll come away knowing how to use the latest tools to streamline your entire workflow. $26.95 ebook, all formats (details)

  • http://wiki.ocaml.jp/index.php?%B4%D8%BF%F4%B7%BF%B8%C0%B8%EC%A4%CE%C8%E6%B3%D3

    takkan_m
    takkan_m 2006/03/03
    関数型の比較している
  • Loading...

    takkan_m
    takkan_m 2006/02/05
    速さには、代償をはらっている