タグ

ブックマーク / bleis-tift.hatenablog.com (12)

  • シャドーイングとイミュータブルプログラミング - ぐるぐる~

    シャドーイングのない言語と、イミュータブル中心のプログラミング(以下イミュータブルプログラミング)の相性って悪いのでは?と思ったのでブログに残しておきます。 シャドーイングとは 既存の変数と同名の変数を定義して、そのスコープで既存の変数にアクセスできなくする機能です。 例えば、F#ではシャドーイングができるので、 let f x = if x % 2 = 0 then (* 引数のxをシャドーイング *) let x = -1 printf "%d, " x (* スコープが抜けたので、引数のxを表示 *) printfn "%d" x f 10 (* => -1, 10 *) f 11 (* => 11 *) となります。 シャドーイングのない言語、例えばC#では同じことはできないので、別の名前を付けるか、再代入で回避することになります*1。 public void F(int x) {

    シャドーイングとイミュータブルプログラミング - ぐるぐる~
    tyru
    tyru 2018/08/19
  • 開発環境勉強会 in Nagoya #1 で発表してきた - ぐるぐる~

    6/18 に開催された開発環境勉強会 in Nagoya #1で CI っぽい話と Vim の話をしてきました。 CIのその先へ View more presentations from bleis tift Vim再入門 View more presentations from bleis tift @kei10in / Vim 結構ぱないね.使わないけど! #devstudy @sunflat / Vim奥が深い #devstudy @kaizen_nagoya / vim長年使っていたが、使っていない機能を覚えれた。#de... @fate_fox / Vimのことがさらに好きになった #devstudy @youku_s / 家に帰ったらvimプラグインをいろいろ試そう。補完系しかい... Emacs 使いの人にも Vim のいいところを伝えることができたのはよかったですね。 ちな

    開発環境勉強会 in Nagoya #1 で発表してきた - ぐるぐる~
  • カーソル位置の文字列を Base64 デコードする vim script 書いた - ぐるぐる~

    Base64 エンコードされた文字列を含む形式のログとかを読む機会が多いんですが、それっぽいのが見つからなかったので自分で書いてみました。 これで、filetype がそのログだったら statusline の右側に出すようにしてみたら割といい感じです。 ただ Base64 だけじゃ足りないので、もうちょっと色々とやらないと・・・ function! D2B(i) let l:work = [] let l:num = a:i while l:num != 0 call insert(l:work, l:num % 2) let l:num = l:num / 2 endwhile let l:result = '000000' for i in l:work let l:result .= i endfor return strpart(l:result, len(l:result) -

    カーソル位置の文字列を Base64 デコードする vim script 書いた - ぐるぐる~
    tyru
    tyru 2011/04/01
    operatorにしてみるとよさそう
  • Git と GitHub を体験しながら身につける勉強会行ってきた - 予定は未定Blog版

    9/18(土) 15:30~ GitGitHubを体験しながら身につける勉強会(名古屋) : ATND 行ってきました。 なんかいろいろと話すことになったんですけど、あの場で言いそびれたこととか、もっとこう説明してればよかったなぁ、って部分の補足も兼ねたエントリです。 長文注意。 ショートカット git add の話 git add -p/git reset -p の話 リビジョン番号がない話 ブランチの話 git-completion の話、__git_ps1 の話 コミットの指定の話 reset の話 rebase と merge の話 公開したものの rebase の話 stash の話 TortoiseGit、HG、SVNのはなし 全体を通して git add の話 Git と SVN では、add に限らず、同じ名前のサブコマンドでも意味が異なるものがいくつかあります。 その中

    Git と GitHub を体験しながら身につける勉強会行ってきた - 予定は未定Blog版
    tyru
    tyru 2010/09/24
    git add -p のやつよくわかってなかった / その他いろいろ
  • git bash here で開くシェルを ckw に変更する - ぐるぐる~

    msysgit を入れると使える git bash here、便利なんだけどコマンドプロンプトに sh がのっかってるから、コピペとか超面倒。 なんで、ckw で sh が開くようにしてみた。 準備 まずは ckw を入手しないといけないんだけど・・・ 実は公式はもうなくなっていて、今はクローンがあるだけ・・・ ということでいつも以上に自己責任でお願いします! ckw 自体は ckw でぐぐると改造版がいくつもヒットする上、ソースも配られているから自分で弄るのも面白いかも。 ckw改造版の修正版とuberboxの修正版と簡易電卓っぽいの。 - Perlとかmemoとか日記とか。 ckw 0.8.10 改造版を更に改造した(修正しただけ) ckw でプロンプトが消えないとき - やた@はてな日記 ここでは一つ目のサイトのバイナリを前提に話を進めますね。 ウィンドウが 2 つ出ちゃうことがある

    git bash here で開くシェルを ckw に変更する - ぐるぐる~
  • プログラミングの魔導書 Vol.1 発売前レビュー - ぐるぐる~

    人生初献・・・と書くとこっちが送ったみたいですね。そうではなく、もらったほうです。ありがとうございます。 と、いうことで、プログラミングの魔導書 〜Programmers' Grimoire〜ですが、Vol.1 は C++ オンリーの構成です。なんとすっぽすっぽ先生のインタビューも載っています。 なので、当然メインの対象読者は C++er になるわけですけど・・・これは面白い! C++ がよほど嫌いじゃない限り、これはほかの言語のユーザにも是非読んでほしいです。 このには、C++ 使いが何を考え、どういう思考 (試行) を経て問題を解決するのか、といったことが詰まっています。 これは、ほかの言語を使っている人にとってもとても参考になるはずです。複数の言語が使えるような人は、是非読んでほしいですね。 まぁ、「なんで俺の使ってる言語にはこういう機能がないんだ!」などと思ってしまうかもしれ

    プログラミングの魔導書 Vol.1 発売前レビュー - ぐるぐる~
  • Brainf*ck in SQL - ぐるぐる~

    Brainf*ck はチューリング完全らしいですよ。 Brainf*ck 自体に興味のある方は、Brainf*ck や Brainfuck - Wikipedia へどうぞ。 WITH -- 入力 Input(id, bf_program, stdin) AS ( -- Hello, World!と標準出力に出力するプログラム SELECT 0, ' >+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.[-]>++++++++[<++ ++>-]<.>+++++++++++[<+++++>-]<.>++++++++[<+++>-]<.+++.------.--------.[-]> ++++++++[<++++>-]<+.[-]++++++++++.', '' -- hogeと標準出力に出力するプログラム UNION ALL

    Brainf*ck in SQL - ぐるぐる~
  • Git 基礎最速マスター - ぐるぐる~

    id:repeatedly から無言の圧力を受けたので書きました。 タイトルは釣り。そもそも自分が Git マスターしてないし。突っ込み歓迎。超歓迎。 一応、このエントリだけで一つの Git リポジトリをそれなりに操れるようになることを目指してます。なので、コマンド一つ一つに対する説明じゃなくて、やりたいこと一つ一つに対する説明が中心です。え?それ最速マスターじゃない?きーこーえーなーいー。 あと、他のバージョン管理システム、例えば Subversion や Mercurial が使えることを前提としています。誰か「バージョン管理システム基礎最速マスター」とか書かないの? インストール Windows と Debian しか分かりませんので、自分のシステムに読み替えて行ってください。あと誰か Mac ください。 インストールも設定も終ってるよ!って方はリポジトリの作成までひとっ飛び。 Wi

    Git 基礎最速マスター - ぐるぐる~
  • rebase について - ぐるぐる~

    rebase 便利だよ、というだけのエントリです。 AA で書いてる部分は時間があれば画像に置き換えます。 rebase とは ブランチを作成した場所を変更することと理解しています。つまり、そのブランチの「親」を変更する、ということです。 もう少し動作に踏み込むと、指定したコミットの後ろに現在のブランチで行ったコミットをリプレイするように適用します*1。単なるリプレイではなく、その過程をいじくれるのが rebase のすごいところです。 単純な rebase はたとえばこんな感じです。 以下のようなリポジトリの状態があったとして (現在チェックアウトされているブランチは dev ということを表すのに * を使っています)、 1---2---3 *dev / A---B---C---D master次のコマンドを実行します。 $ git rebase masterこれにより、リポジトリの状態

    rebase について - ぐるぐる~
  • C++ よりも C# よりも Java でゲームを作ると良い 8 の理由と、悪いほうの 8 つの理由 (大嘘) - ぐるぐる~

    元ネタ:C++よりもC#でゲームを作るとよい8の理由と、悪いほうの8つの理由 - 【長剣は】最強武器候補【鈍器です】 注:この記事での JavaJava SE 6 を、C# は .NET Framework 3.5 を、C++ は Visual Studio 2008 を想定しています。 最新の C# 4.0 や C++0x だと改善されているかもしれませんが、色々とお察しください。 1. enum が便利 C++ も C# も enum は結局単なる整数ですが、Java ではオブジェクトとなります。 // Java enum Sword { LONG, SHORT } valueOf メソッドを使うことで、文字列から enum への変換もでき、Sword.LONG.toString() のように、文字列にすることもできます。 その上、メソッドやフィールドとか持てちゃいます。なんかも

    C++ よりも C# よりも Java でゲームを作ると良い 8 の理由と、悪いほうの 8 つの理由 (大嘘) - ぐるぐる~
    tyru
    tyru 2009/12/09
  • More Effective C# - ぐるぐる~

    More Effective C# 作者: Bill Wagner,長尾高弘出版社/メーカー: 翔泳社発売日: 2009/12/01メディア: 大型購入: 9人 クリック: 139回この商品を含むブログ (19件) を見る を読むに当たって、注意すべきかなー、と思ったところをだらだらと。 ICloneable は実装すべきではない ICloneable を実装することはお勧めできません†。 †:『Framework Design Guideline : Conversions, Idioms, and Patterns for Reusable .NET Libraries』(著/ Krzysztof Cwalina, Brad Abrams 刊/ Addison-Wesley) を参照してください。 More Effective C# 項目 1 1.x フレームワーク API のクラス

    More Effective C# - ぐるぐる~
    tyru
    tyru 2009/12/01
  • 例外について色々と考えてみた - ぐるぐる~

    オブジェクト倶楽部、コーディング規約の会の「C# コーディング標準」の駄目なところ - ぐるぐる〜から派生して、 「他の例外クラスを継承しただけの例外クラスを作らない」に不同意の理由 - Diary of Dary、 例外クラスの指針 - とC#について書くmatarilloの雑記や、さらには TwitterJava の検査例外と非検査例外についての議論へと発展したので例外についてまじめに考えてみた。 あくまで、今の自分の考えなので真に受けない方がいいかも!そもそも経験が少ないので、トンチンカンなことを言ってるかもしれません。 あ、それと、用語は基的に Java から取ってきています。ただ、メソッドじゃなくて関数を使っているけど、これに深い意味はありません。多分。 例外とは まず、例外とは一体何者なのか、ということ。 ここでは面倒を避けるために、Meyer 先生の定義を借りること

    例外について色々と考えてみた - ぐるぐる~
  • 1