タグ

2017年8月3日のブックマーク (14件)

  • Procを制する者がRubyを制す(嘘)

    RubyのProcの説明は巷に溢れているから今更感があるけどここ数回Procを使ったネタを書いていたらProcがかわいくなっちゃってもっとみんなにもProcのこと知ってもらいたいという欲求が生まれてきたからProcについての基的なことを僕なりのやり方でここに書くよ。長いよ。 Rubyの関数(メソッド) Rubyにおいて関数(メソッド)はファーストクラス(オブジェクト)ではありません。つまり文字列や数字や配列などの他のオブジェクトとは異なって、Rubyではそれを直接変数に代入したり、他の関数に渡したりすることはできません。 def square(n) n * n end sq = square # squareメソッドを変数sqに代入してみる # ~> -:1:in `square': wrong number of arguments (0 for 1) (ArgumentError)

    Procを制する者がRubyを制す(嘘)
  • Rubyの配列でごにょごにょするときzipとinjectとevalが便利すぎる件 - ミームの死骸を待ちながら

    先日「ブログ書きが不調」と書いたが、言語のアウトプットが不調なときは、それ以外のことをするに限る...たとえば黙々とプログラムを書く、音楽に浸る、身体を酷使する、などだ。というわけで月曜日、天気は晴れなかったものの、研究のデータ処理に使うRubyスクリプトを書きまくって憤を晴らしていた。 ところがそのプログラム脳のまま夜にはVimM#4に行こうとした時、そういえば内定者3人によるSkype会議が予定されていた(つまりダブルブッキング)ことを思い出し、自分の阿呆さに呆れ、当にすみません、でもって結局気分は晴れず。 前置き(ただの日記)終わり。 題。 Rubyの配列でいろいろいじる時に、for i in ...と array.each でだいたいできるんだけど、もちっとスマートにやりたいなぁと思って調べていたらこれ使えるんじゃね?と気がついたことがいくつかある。zipとinjectとev

    Rubyの配列でごにょごにょするときzipとinjectとevalが便利すぎる件 - ミームの死骸を待ちながら
  • 関数プログラミングっぽくmapに2引数関数をカーリー化して渡す - 城陽人の本棚

    rubyで1引数関数をmapに渡す場合は、こんなかんじでメソッドのシンボルをProcオブジェクトとして渡せて関数プログラミングっぽい書き方ができるんだけど、 irb > ('a'..'c').map &:upcase => ["A", "B", "C"] 2引数になるとどう書けばよいんやろうと思ってたのだけど、パーフェクトRuby読んでたら、9.3章MethodオブジェクトとProcオブジェクトのところにこんな書き方が載ってた。 irb > (0..10).map &2.method(:*).to_proc => [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20] ぜんぜん直感的じゃないけど、数字の2のインスタンスから乗算メソッド*のMethodオブジェクトを取得して、Procオブジェクトに変換して渡してる。数字の2はMehtodオブジェクトのレシーバとして束縛

    関数プログラミングっぽくmapに2引数関数をカーリー化して渡す - 城陽人の本棚
  • RubyでCSVを読み込みつつ書き込む方法

    質問をすることでしか得られない、回答やアドバイスがある。15分調べてもわからないことは、質問しよう!新規登録して質問してみよう

    RubyでCSVを読み込みつつ書き込む方法
  • うまくクラス名を付けるための参考情報 - Qiita

    クラス名には、多くの場合"名詞"を用います。メソッド名の場合は動詞や助動詞を用いて命名しましたが、クラス名は何かしらの責務を持つモノとして捉えるため、名詞を用いることになります。 一方、インタフェースの宣言をする場合、そのインタフェースの名前に"形容詞"を用いることがあります(例:Iterable、Closeable等)。形容詞を用いることで、クラスの持つ性質を説明的に見ることができるようになります(Iterableな配列のList実装 -> ArrayList等)。 この記事は、どのような名詞や形容詞がクラス名やインタフェース名として用いることが出来るかを一覧し、できるだけクラスやインタフェースの役目を端的に表せるようなリファレンスとして活用できるものを目指していきたいと思います。 自分自身がクライアントアプリケーションのバックグラウンドを持っている為、多分にそこで用いる命名方法が含まれ

    うまくクラス名を付けるための参考情報 - Qiita
  • cmd.exeの使い方 - 日記

    この日記はフィクションです.登場する人名・団体名・地名・職業などはぜんぶ架空のものです. なので実際のものとは何も関係がありません. それから,写真のように見える画像はCGもしくは念写によるものです. 2012-06-23 (土) *cmd.exeの使い方 Windows使ってるエンジニアの多くの人がcygwin入れたりVM起動したりしてるみたいですが,cygwinもVMもWindowsじゃないと思うし,それなら最初からWindows消してLinuxとかで良いと思ってしまいます. というわけで,Windowsユーザを名乗るなら,ちゃんとcmd.exe上で作業するべきです. ckw.exe まず,素のコマンドプロンプトは使い物にならないので,ckwを拾ってきてインストール.コンソールが変わっただけでシェルはcmd.exeです. 一時期,色々な人がパッチを当ててたバージョンを作ってて,どのパッ

  • バッチファイルでの試行錯誤を回避するためのメモ-または人類には早すぎた言語 - Qiita

    草 「それ海外だとアウトローですぅ」 「ここではない何処かに行きたいだけなら、それでもいいですけど(ドヤァ)」 「プログラミング言語に詳しくなるのは、もう生き甲斐のようなものなんです(ドヤァ)」 「来月からレポートしますぅ」 「レポートはしないですぅ」 「私は先に進みます(キリッ)」 クッソワロタwww この記事の背景 最近、仕事でバッチファイルを書かざるを得ないという不幸な場面に遭遇しているのですが、これがまた、ものすごくどうでもいいことでハマることが多々あり、思わず「このWindows、壊れてる!」と思ったほどでした。犠牲者を増やさないためにも、DOS文法の挙動を記録したメモを載せておきます。 (記事を見てもらえば納得されると思いますが、DOSバッチの言語設計は「驚き最大の原則」を方針とし、その言語仕様は「実装」です。言語法律家というものが成立しえない、非常に平和な世界でもあります。

    バッチファイルでの試行錯誤を回避するためのメモ-または人類には早すぎた言語 - Qiita
  • Rubyでパス文字列を組み立てるときはPathnameクラスを使おう - WEB SALAD

    はじめに Rubyで文字列操作だけでパス文字列を組み立てようとすると苦しいコードになりがちですが、Pathnameクラスを使うといい感じに書けることがわかったのでまとめました。 Pathnameとは Rubyの組み込みクラスで、パス名をオブジェクト指向っぽく扱うことができます。 例えば、以下のようなインスタンスメソッドが用意されています。 directory?: selfがディレクトリであればtrueを返す size: selfのファイルサイズを返す symlink?: selfがシンボリックリンクである時にtrueを返す 用意されているメソッドを見ればわかるように、自身の表すパスの情報を取得したりするときに便利です。 しかし、一番のポイントは、Pathnameのインスタンスはパス名を表しているだけであり、存在しないファイルのパス名も扱えるということです。 なので、システムとは無関係のパス

    Rubyでパス文字列を組み立てるときはPathnameクラスを使おう - WEB SALAD
  • 標準入力で渡された数値群をFixnumとして受け取る方法~mapとprocの入門を添えて~ - Qiita

    この記事のサマリ ・標準入力で渡されたスペース区切りの整数群は、「inputs = gets.split.map(&:to_i)」とすれば、各要素に対してto_iで、数値化された状態で受け取ることができる ・もし、上記「&:to_i」の部分が説明できない人は、この記事を読むとわかるようになるはずです。 背景 paizaという、プログラムを書く技術を計測(課題がいくつかあって、それに対してコードを提出→採点という流れ)して、それを転職に利用できるという、プログラマーと企業とのマッチングを行うサイトがあり、情報収集や勉強がてら利用させていただいているのですが。。。 paizaの環境の都合上(オンラインでリアルタイム採点をするため)、標準入力で受け取ったテストデータが、期待通り動作するか?というのが、問題を解く大前提になっているます。そのため、必ず「標準入力を適切に受け取る」というコードが必要に

    標準入力で渡された数値群をFixnumとして受け取る方法~mapとprocの入門を添えて~ - Qiita
  • 無料サービスを使え! – 役立つ無料サービスのレビュー、まとめ、比較記事を紹介

    コンテンツへスキップ 無料で使える!HubSpotの顧客リストの活用法 無料のアンケート作成ツール 比較/まとめ 無料「Excel」 テンプレート 比較/まとめ 無料で使えるノートアプリ比較 (Evernote / OneNote / Google Keep) おすすめの無料Web会議システム5選 WebP Converter 徹底解説!初心者でも直ぐに使える HubSpot は、マーケティング、セールス、サービスのためのCRM(Continue reading 多くの人の声を聞くことで改善できることも多い 企業や団体など運営していContinue reading 就職・転職には必須となる履歴書・職務経歴書 これから就職活動をスタートContinue reading 便利なノートアプリで効率的な仕事をしよう いつの時代も仕事をしていてメContinue reading 近年、リモートワーク

  • カレントディレクトリを取得するには (pwd) | hydroculのメモ

    カレントディレクトリを取得するには (pwd) Java 2015/02/01 システムプロパティ "user.dir" を読み取る。 String pwd = System.getProperty("user.dir"); System.out.println(pwd); または java.io.File を使って無理やり取得する。 import java.io.File; String pwd = new File(".").getAbsoluteFile().getParent(); System.out.println(pwd); // 以下の例だと最後に /. が付いてしまう String pwd2 = new File(".").getAbsolutePath(); System.out.println(pwd2); Ruby 2014/12/03 Dir::pwd でカレント

  • 異なるエンコーディングでのファイル書き出しと読み込み - Qiita

    古いシステムのために EUC-JP でファイル書き出しをする必要がある場合,内部エンコーディングは UTF-8 だったので,今まで明示的に書き込む文字列を EUC-JP に変換してから書き込んでいた. でも,次のようにモードでエンコーディングを指定すると自動でその変換をやってくれるらしい. # coding: UTF-8 # UTF-8 から EUC-JP へ変換して書き込んでくれる. File.open("hoge-euc", "w:EUC-JP:UTF-8") do |f| f << "ファイルの中身" end

    異なるエンコーディングでのファイル書き出しと読み込み - Qiita
  • 【Ruby】よく使うFileクラスを使ったファイル読み込み処理 - Qiita

    Fileクラスを使ったファイルの読み込み処理のうち、個人的に良く使うパターンをテンプレコードとしてまとめた。 前提 ファイル読み込みでは、実際には読み込んだあとに何らかの処理をすることが多いと思うが、ここではputsで出力するだけ 例外発生時は、捕捉した例外クラスとメッセージを出力するだけにする カレントディレクトリにlabmen.txtという名前で以下の内容のファイルがあるものとする。 Okabe Rintaro Shiina Mayuri Hashida Itaru Makise Kurisu Kiryu Moeka Urushibara Ruka Feyris Amane Suzuha begin # File.openはファイルをオープンし、Fileオブジェクトを返す # 第1引数: ファイルパス # 第2引数: ファイルモード (デフォルト => 'r') # 第3引数: ファイ

    【Ruby】よく使うFileクラスを使ったファイル読み込み処理 - Qiita
  • rubyの例外についてまとめてみた - Qiita

    ちょっとこんがらがったので整理 先に結論 型指定なしで rescue すると、 StandardError のサブクラスのみ catch する アプリケーションレベルでの標準的なエラーは RuntimeError のサブクラス RuntimeError は、StandardError のサブクラス なので、アプリケーション内で独自の例外を書く場合、普通は RuntimeError を使ったほうが良い 1.8 系の場合 Timeout::Error は、StandardError のサブクラスではない raise 関数に型を渡さない時に発生する例外は、 RuntimeError

    rubyの例外についてまとめてみた - Qiita