タグ

ブックマーク / qiita.com/gogotanaka (8)

  • Rubypeを使ってRubyで型のメリットを享受する - Qiita

    Ruby + Type = Rubype 既存のコードとの互換性を崩すことなく、選択的にメソッドに型保証を与えるGemです. Github HP HackerNews ここで指す'メソッドの型保証'とは実行時レベルでメソッドの引数返値のクラス型や反応すべきメソッドを保証する事です. 得られる一般的な型保証のメリット Executableなドキュメントをコード内に付与出来る. エラーがより意味のあるエラーになる. Rubypeが確かであるならば引数返値チェックの処理は一切不要となる この様な形で型情報付与するからこそ出来ること. 実行時に動的に型の付与変更、型情報の確認がする事も出来る.(型情報もオブジェクト) クラス型のみではなく、反応すべきメソッドをシンボルで指定する事が可能 このGemのデメリット、至らぬところ 当該メソッドを呼び出す度に型チェックを行うのでオーバヘッドが生まれる. (

    Rubypeを使ってRubyで型のメリットを享受する - Qiita
  • Rubyに型を付けるHaskellというgemを作ったヨ!

    2020/12/27追記 https://www.ruby-lang.org/ja/news/2020/12/25/ruby-3-0-0-released/ => Ruby3.0.0にRBSとTypeProfと用いた静的解析に対するソリューションが提供されました。 今後はこちらのエコシステムをガンガン盛り上げていきましょう💪 あいさつ P.S. 12/11 HaskellからRubypeにgemを変更しました こんにちは. 寒さが一段と厳しくなってきた事もありまして心を温めるGemを作りました. Rubyの振る舞いを汚染する事無く型保証の恩恵をゆるふわ受けられるgemです (型をつけるとか型保証という言葉をこの文脈ではメソッドの引数返り値のクラスを実行時にチェックするという意味で使っている.) 得体の知れないGemで抵抗感があるかもしれませんが、コード自体は50行以下の薄いGemなので気

    Rubyに型を付けるHaskellというgemを作ったヨ!
  • 世界で一番ピュアな論理型プログラミング言語Hilbert(ヒルベルト)をRubyで作った. - Qiita

    あいさつ こんにちは. 皆さん如何お過ごしでしょうか. 日の日付を確認致しましたらもう2014年も残り一月半と改めて認識させられ驚いています. こうも時間の流れが早いと死ぬのもすぐですね. 懸命に生きようと思います. さて今回はHilbertという論理型プログラミング言語を作りました. (カジュアルに作ってるように見えますが、割と気です.) まだまだやるべき事は当に多くて、飴ちゃんあげるのでコミッター大募集です. (今ならカントリーマームもつけるのでお願いします.) HP: http://hilbert-lang.org/ja/ Github: https://github.com/gogotanaka/Hilbert 前座 世界で一番ピュアで豊かなプログラミング言語 この言語で仮定されているのは恒真(トートロジー)のみです. (厳密に言うと自然演繹も仮定されていますが.) 当初、自

    世界で一番ピュアな論理型プログラミング言語Hilbert(ヒルベルト)をRubyで作った. - Qiita
  • Rubyで「ダーツの旅」と「住所←→緯度経度」助けになるGem作ったわ

    バグの報告は頂いてから24時間以内に直します. こんにちは. 個人的に使っていたスニペットをGemにしてみました. (Google Maps APIのラッパーです) 「実家の緯度と経度なんだっけ〜」とか「ダーツの旅したいけどダーツとアレがない」という時に使えると思います. とっととデモへ お好きな様にgemを引っ張ってもらって

    Rubyで「ダーツの旅」と「住所←→緯度経度」助けになるGem作ったわ
  • Ruby2.2 ではアレが死ぬほど使いやすくなるの! - Qiita

    そうです、Matrix(行列)クラスに色々入る予定のようです. .... いやもっと伝えるべきモノが他にあるとの怒号が今にも聞こえて来そうですが... 「すみません今日の所は行列の紹介をさせて下さい.」 多くの方は興味もないであろうけど、 Rubyには行列やベクトルを扱う Matrix クラスというものがありまして、 Ruby2.2では色々新機能やバグfixが入るようです. 「行列ベクトル演算するならRubyよね」 と言われるくらいのモノにはなるのではないでしょうか? 日はRuby2.2以前にあるものも含めMatrixのマジですごい所を紹介します. 使わないともったいない!すごいMatrix, 楽しく学ぼう! 1. LU分解 LU分解が出来るという事は... n元連立方程式をいとも簡単に解く事が出来ちゃうの # 2x + y = 2 # x + 2y = 3 Matrix[ [2, 1]

    Ruby2.2 ではアレが死ぬほど使いやすくなるの! - Qiita
  • RubyのClassクラスとかのモヤッと感をズバッと解決したい - Qiita

    ClassクラスとかModuleクラスの継承関係やら、 それ自体のクラスとかの関係てなんかモヤっと感あるなあと思っていて、 上手い事キレイに説明したいなと思い色々考えていたらそっぽい答えが出たので書きます. まあひとまず以下のコード見て頂いてモヤっとしなければこんなクソ記事すぐ閉じるが宜しいかと. もしモヤっとした方で興味があったらお読み頂ければなと. '1'.class => String '1'.class.class => Class '1'.class.superclass => Object '1'.class.class.class => Class '1'.class.class.superclass => Module '1'.class.class.superclass.class => Class '1'.class.class.superclass.superclas

    RubyのClassクラスとかのモヤッと感をズバッと解決したい - Qiita
  • Rubyで俺指向言語Qのプロトタイプ作った - Qiita

    fooo↑↑ 動機 僕はただの数学/統計系の学部生で、RやMathematicaなどの言語を強いられる事が多いのですが、 RubyやHaskellやScalaなどのステキな言語を知っていると「ちょっとな〜」と思っておりましたところ、 突然「あ、新しい言語作らなアカン」という不可思議な衝動に駆られ ガッと取り憑かれたように実装し、少し冷静になってQiitaを書いているのが今です. フィードバックを頂きながら育てて行きたいと思います(コミッター絶賛募集中、ワイワイ楽しくやりたいです. アメちゃん差し上げるのでお願いします. ) 現在はコンパイラと4秒くらいで作ったインタプリタがあります. ポリシー 一番大きな観念としては 「紙とペンの感動をキーボードで」 です. 後々の可読性や保守性などはどうでもよくて、 「その瞬間(コードを書いている瞬間)の気持ちよさ、心地よさ、そしてその返値を楽しむ事」

    Rubyで俺指向言語Qのプロトタイプ作った - Qiita
  • 【Rubyが好き】微積分や統計解析を快適に扱う言語(DSL) rubyで作ったヨ! - Qiita

    Rubyで微積分や統計解析を快適に扱うDSL作ったヨ!↓ github バグ報告を頂ければ24時間以内に直します. このDSLで一番大事にしたのは、 微積分や極限、対数や三角関数などを紙上で数学をする感覚と同じ感覚で取り扱える事. わざわざRubyでやる必要、あったの...?(;゜0゜) 僕がこのDSLをRubyで作ったのにはいくつか訳があります. Rubyが好き MATLABが苦手 Rubyが好き mathmaticaが苦手 Rubyが好き pythonが苦手 Rubyが好き ... とにかくRubyが好きです. 少しマジレスすると僕の大好きなRuby数学色が薄いのが少し悲しかったのです. (蛇足ですが、この想いからrubyのMatrixクラスにシコシコcommit してます. ex. https://github.com/ruby/ruby/pull/568 Matrixを成長させ組

    【Rubyが好き】微積分や統計解析を快適に扱う言語(DSL) rubyで作ったヨ! - Qiita
  • 1