タグ

rubyとprogrammingに関するyouzのブックマーク (12)

  • Route 477 - UXを重視したプログラミング言語

    ■ [ruby] UXを重視したプログラミング言語 Rubyが生まれたのは今から20年前のことだ。Rubyの肩書きは「オブジェクト指向スクリプト言語」であるが、実のところRubyにしかない特徴的な機能というものは特になく、いろんな言語から良いところを寄せ集めてきたというのはまつもとさんも各所で書かれている通りだ。 その代わり、Rubyはプログラムの書きやすさを常に念頭に置いてデザインされてきた。 それはプログラミング時の脳の負担を最小にする、と表現されることもあるし、楽しくプログラミングできる、のように表現されることもある。 人によっては、プログラミング言語にとって構文は質的ではない、という向きもあるだろう。それに対して、 構文やメソッド名を工夫することはプログラミング言語の使用感に結構な影響を与えるし、「触りごこちの良さ」は重要なことである、というのがRubyの思想である。 最近、UI

    Route 477 - UXを重視したプログラミング言語
    youz
    youz 2013/02/25
    > Rubyが生まれた頃はプログラミング言語というものは企業か研究室のいずれかで作られていたため、 既存のものに対して新しい機能がないプログラミング言語というものが生まれる余地はなかった
  • LispUser.net : 最高にキモい Lisp コードを書いてみよう with 100 行リーダーマクロ

    LISPUSERLISPMEMOLisp is like a ball of mud - you can throw anything you want into it, and it's still Lisp. -- Anonymous Ruby 方面でみかけたネタに触発されました.Lisp はプログラマブルな言語な のでリーダーもプログラマブルです.そこでリーダーをいじって let や defun などの構文を括弧じゃなくて end にでもしてみましょうか. 100 行程度を目標にトライしました.使ったライブラリは CL-Yacc のみです. できあがったのがこちら. #@suck-lisp defun fib (n) if (< n 0) (error "oops") elif (= n 0) 0 elif (= n 1) 1 else let x <- (fib (- n 1))

  • Rubyコーディング規約

    はじめに 文書は、Rubyによりコーディングを行う際の規約について述べる。 実際のプロジェクトに適用する際には、このコーディング規約をカスタ マイズして用いることを推奨する。 ソースコードの整形 インデント プログラムを読みやすくするため、インデントを適宜行う。インデント 幅は2とする。また、インデントにはスペースのみを使用し、タブは使用 しない。(環境によりタブ幅が異なるため。) 例: if x > 0 if y > 0 puts "x > 0 && y > 0" end end 一行の桁数 一行の桁数は最大80桁までとする。 空行 複数のクラスの区切には空行を挿入する。 例: class Foo ... end class Bar ... end 誤った例: class Foo ... end class Bar ... end また、クラス内の各構成要素の区切にも空行を挿入する。

  • まつもと直伝 プログラミングのオキテ---目次 - まつもと直伝 プログラミングのオキテ:ITpro

    第0回 あらためてRuby入門 まつもとゆきひろ氏自身による「Ruby入門」をお届けします。日経Linuxの連載開始前の特別企画(2005年4月号)として,Rubyが他のスクリプト言語やオブジェクト指向言語とどこが違うのか,なぜ便利なのかを中心に解説してもらったものです。 ● 基と他言語との違い ● 実装とRuby誕生の秘密 第1回 プログラミングとオブジェクト指向の関係 プログラマを目指す人々の中にも,「オブジェクト指向は難しい」とか,「なかなか分からない」という印象を持つ方が多いようです。そこで,Rubyを題材にオブジェクト指向という考え方について説明していきます。 ● その1 ● その2 ● その3 第2回 抽象データと継承 オブジェクト指向プログラミングを構成する3原則のうち,前回は「ポリモーフィズム」を学びました。今回はオブジェクト指向の歴史を復習した後,残りの「データ抽象」と

    まつもと直伝 プログラミングのオキテ---目次 - まつもと直伝 プログラミングのオキテ:ITpro
  • Python Class Concepts: Class Variables, Attributes, and Properties

    If you're eager to delve into the intricacies of Python classes and their various aspects, you're in the right place. Understanding classes is fundamental as they form the building blocks of object-oriented programming (OOP), enabling efficient code organization, reusability, and abstraction. This site offers comprehensive insights and practical examples to empower you in mastering Python classes.

  • sparsetable - steps to phantasien t(2007-09-07)

    Matz日記 で紹介されている google-sparsehash を眺めてみた. ひさびさに Google 気分. :~/src/sparsehash-0.8 omo$ wc `find src/google/ -type f` 253 1348 10336 src/google//dense_hash_map 237 1309 9884 src/google//dense_hash_set 238 1244 9616 src/google//sparse_hash_map 223 1214 9245 src/google//sparse_hash_set 919 4776 37957 src/google//sparsehash/densehashtable.h 42 189 1187 src/google//sparsehash/sparseconfig.h 884 4642 371

  • 2006-11-07

    記号ゴルフって英語でなんやろって聞いたら題字の返事が mark byers 氏から帰ってきました。 さて、最近の記号ゴルフについては、 http://d.hatena.ne.jp/kikx/20061030#1162308720 にまとまっていますが、とりあえず無限ループは [*""..$/] と (""..$/).min で更新できますねーと。 あとは quine も StackError も SEGV もわからないなぁといったところです。特に quine を「安直に」作る kik さんは異常だと思いました。つまり答えキボンヌと申しておるのですが。 追記なんかこれ偉そうですね。こう答えがわからないギギギというアレが。 StackError は正規表現とかなんかなぁ…あ、あと思い出したんですが 6B StackError は察しておられる通り load$0 のつもりでした。 Perl Go

    2006-11-07
  • callcc-lib

    Non trivial examples of Continuation of Ruby co-thread.rb (CoThread: a generic library -- step-wise threading) proc.rb (Proc by Continuantion) co-queue.rb (Queue by Continuation) co-sizedqueue.rb (SizedQueue by Continuation) generator.rb (external iterator, EndOf-type) iterator.rb (external iterator, hasMore?-type) iterator2.rb (external iterator, hasMore?-type, cofork version) sync-eqch.rb (synch

    youz
    youz 2008/10/01
    RubyでCall/CC
  • プログラミング言語

    では余り知られていませんが、非常に優れた純粋関数型言語Concurrent Cleanの使い方、チュートリアル・言語リポートの翻訳を載せています。一応ここだけ見れば、Cleanの基は分かるようにしているつもりです。純粋関数型という最先端の言語でありながら、統合開発環境を持ち、GUI作成のライブラリも豊富な、そして、効率的なexeファイルを出力するコンパイラです。インタプリタではありません。 やはり言っておくべきなのでしょうが、ここにある内容は、基的に、明示的型宣言を行う命令型言語及びオブジェクト指向言語(具体的には、C/C++Java、C#、Pascal等)をやった人でないと分からないような内容が多いかもしれません。 ただ、Rubyの所は、Rubyだけ分かっていれば分かる内容だと思います。 個人的な意見ですが、関数型言語それ自体は命令型言語を勉強しないままでも入って行けると思

    youz
    youz 2008/10/01
    関数型プログラミングの基礎概念・Rubyによる関数型プログラミング・オランダ産関数型言語Concurrent-Cleanの詳説
  • Re: 無限オブ無限 - まめめも

    順番はどう変えてもいいから、とにかく『どの要素もいつかは出てくる(有限ステップ以内には出てくる)』ように列挙したリストを返す関数を作ってみてください。 無限オブ無限 何か設問に裏の意図がありそうな気配を感じますが、あっさり釣られます。無限リストの無限リスト限定ならわりとシンプル。 def iflatten(g) a = [] loop { a << g.next; a.each {|a| yield a.next } } end でもこれは有限リストが混ざるとうまく動きません。有限リスト対応版はなんだか複雑。 def iflatten(g) a = [] begin a << g.next rescue g = nil a = a.select {|a| yield a.next rescue next; true } end until !g && a.empty? end 手抜きしてる

    Re: 無限オブ無限 - まめめも
  • Jicksta.com is for sale | HugeDomains

    Jicksta.com This domain is for sale Fill out the form on the rightbelow. One of our domain experts will email you a price within 24 hours.

    Jicksta.com is for sale | HugeDomains
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    youz
    youz 2008/08/26
    Rubyでのλ式の真偽値の表現
  • 1