タグ

Rubyとsyntaxに関するkiyo_hikoのブックマーク (10)

  • シンタックスハイライトを実装する(Ruby & Parslet 編) | Webシステム開発/教育ソリューションのタイムインターメディア

    問題 世の中にはシンタックスハイライトを行うツールが既に多数存在しています。例えば以下のようなものがあります: GNU Source-highlight (コマンドラインツール)SHJS (JavaScriptでの実装; クライアントサイドで動的にハイライトする)SyntaxHighlighter (SHJSと同様) メジャーな言語やフォーマットなら標準でシンタックスハイライトの設定が同梱されていますが、 ニッチな言語やフォーマットだとまずそのような設定は存在しません。 それならば独自に設定を書けばいいのですが、 大抵のツールでは構文の定義方法が特定のパーツに該当する正規表現を並べるだけなので、 言語によっては構文の妥当な記述が不可能な場合もあります。 となると独自に実装せざるを得ません。 例えば Vim の :help ドキュメントを良い感じに Web ブラウザ上で見るためのツール を作

    シンタックスハイライトを実装する(Ruby & Parslet 編) | Webシステム開発/教育ソリューションのタイムインターメディア
  • Rubyの多重代入について -- ぺけみさお

    Rubyでは変数に代入を行う際に、右辺と左辺の式をカンマで区切ってやると、複数の変数への代入を1行で記述できる。 これは多重代入と呼ばれており、多重代入を使うことで変数の初期化を簡潔に書くことができる。 以下は変数aとbを、それぞれ1と2で初期化する例である。

    kiyo_hiko
    kiyo_hiko 2016/02/15
    左辺.length > 右辺.lengthで不一致はnil割当て、左辺.length < 右辺.lengthは右辺切捨て // car, *cdr = list; // swapできるらしい a, b = b, a
  • オーバーロードは書けるの? - RubyBeginner (ルビギナー)の世にも奇妙な開発

    INDEX PAGE オーバーロードは書けるの? Javaでは同じ名称のメソッドで引数の型、個数などを変えられる いわゆるオーバーロードというテクニックが存在します。 Rubyに関しては、オーバーロードという記述方法は存在していないようです。 そもそもスクリプト言語ということもあり 引数に関する型判定が存在していないということが一番大きな理由と思われます。 しかし、実際問題としてオーバーロードを使えないと プログラムとして使いにくいということも多いはずです。 Rubyではオーバーロードこそできませんが、同じようなことをする方法はいくつか提供されています。 ■引数にデフォルト値を設定する 下記のように、引数に対して「=」をつなげて値を設定することでデフォルト値を設定することができます。 デフォルト値が設定できれば引数自体は省略可能になります。 def hoge(key1,key2,key3=

    オーバーロードは書けるの? - RubyBeginner (ルビギナー)の世にも奇妙な開発
    kiyo_hiko
    kiyo_hiko 2016/02/09
    Ruby半年学習して今更だけど。Prologみたいに、単にアリティで多重定義するのも無理そう
  • Rubyのmap(&:name)というのはどういう意味? - QA@IT

    平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識

    Rubyのmap(&:name)というのはどういう意味? - QA@IT
    kiyo_hiko
    kiyo_hiko 2016/01/27
    Symbol#to_procのが在って、適当なシンボルをレシーバーとして評価するとアリティ1でThe argをレシーバーとし<シンボル>メソッド呼び出すProcに評価されるらし ∴ :fuge.to_proc ≒ Proc.new { |x| x.fuge } ∴map/select系に渡せて楽ちんと
  • Rubyist Magazine - スはスペックのス 【第 1 回】 RSpec の概要と、RSpec on Rails (モデル編)

    『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0063 号 バックナンバー Rubyist Magazine 0063 号 Rubyist Magazine 0062 号 Kaigi on Rails 特集号 RubyKaigi Takeout 2020 特集号 Rubyist Magazine 0061 号 Rubyist Magazine 0060 号 RubyKaigi 2019 直前特集号 Rubyist Magazine 0059 号 Rubyist

    kiyo_hiko
    kiyo_hiko 2015/10/01
    忘れがち
  • Javaプログラマーが学ぶRuby基礎/例外の基本 - Tbpgr Blog

    概要 Rubyの例外について説明します。 構文 Rubyの例外は以下の構文で利用出来ます。 begin 例外の例外の起こる可能性のある処理 rescue 例外が起こった場合の処理 ensure 例外の有無に関わらず実行される処理 end サンプル def divide_number(number,divide) begin # Javaのtryと同様 puts "input (#{number},#{divide})" number/divide rescue => exception # Javaのcatchと同様 puts exception.message puts "like Java's catch" raise 'my error' # Javaのthrowと同様 ensure # => Javaのfinallyと同様 puts "like Java's finally" en

    Javaプログラマーが学ぶRuby基礎/例外の基本 - Tbpgr Blog
  • Rubyのcaseを〇〇(言語名)のswitch文だと思っている人たちにぼくから一言ガツンと申し上げたい

    Rubyのcase」を一瞥し「あー要は〇〇(言語名)のswitchね」などと早合点し、その後もその真の価値を知ることなく一生を終えるプログラマが近年跡を絶たない。加えて、「今更条件分岐?RubyはOOPなんだからポリモフィズムじゃね?」とか「HashにProc突っ込んでcallするのがオレ流。」とかうそぶく人たちもまた増加の一途を辿っている。 そんな世の中にあって、ぼくは一言、できればガツンと一言申し上げたい。生まれも育ちもRubyなぼくから、是非ともそんな人たちに「Rubyのcase」について一言申し上げておきたい。 ─ 問題1 ─ 名前name、レベルlevel、ポイントpointの各属性を持った複数のCharacterオブジェクトcharlie, liz, benがある。 class Character < Struct.new(:name, :level, :point) def

    kiyo_hiko
    kiyo_hiko 2013/02/25
  • あなたが理解できない,たった一行のRubyのコード (動的言語に対する静的解析の限界) - 主に言語とシステム開発に関して

    あなたは,下記のコードを理解できない。 p f /g+h/i これはRubyのコードである。「p」は,コンソールに出力する関数である。 問: だいたい,何をやっているコードですか? ※例えば,四則演算など。 構文をおおまかに説明して下さい。 どれが変数で,どれが関数で,どれが演算子か? ↓回答 回答: 一意に決定できない。 下記に, このコードの複数の解釈方法と, この件が引き起こす問題 について述べる。 ※なお,この問題が起きるのは動的言語に限らず,静的言語でも同様に発生しうることを前もって述べておく。 (1)分数の計算とみなすパターン 先行するコードを下記のように書いた場合: test1.rb # 変数に数値を代入 f = 2 g = 1 h = 2 i = 1 # 演算結果をpで出力する p f /g+h/i 実行結果: >ruby test1.rb 4 「分数の計算」とみなされる。

    あなたが理解できない,たった一行のRubyのコード (動的言語に対する静的解析の限界) - 主に言語とシステム開発に関して
  • Ruby On Rails ピチカート街道 - yield が分からないので勉強する -

    2024.07 « - - - - 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 » 2024.09 rails の yield じゃなくて、ruby の yield のことなのですが、超こんがらがって分からなかったので、色々試しました。 そこで出した結論。 yield は、引数として渡されたブロックを実行するだけ という風に今は理解しています。 どういうことか、というと例を見た方が早いと思います。 def method1 yield end method1 do puts '血糖値' end を実行すると 血糖値 と表示されます。最初は、なんでこーなるの???????とハテナがたくさん付きました。 でも↓のように理解すると分かりやすくなりました。 1. method1

    kiyo_hiko
    kiyo_hiko 2012/02/28
    シンプルでわかりやすい、RubyのBlockとyield。ただわからないのはなぜ普通の引数とブロックで引数の渡し方が違うんだろうか、というのと、複数のブロックは渡せるのか、という点。そのうち他のサイトも調べる。
  • るびま

    『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直

    kiyo_hiko
    kiyo_hiko 2012/02/01
    ざっと読んだところコルーチン? いつかちゃんと読む。
  • 1