タグ

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

  • 遅延評価いうなキャンペーンとかどうか - ぐるぐる~

    遅延評価については以前も書いてるんですが、そのときは結論なしでした。 が、ちょっと考えるところがあって、言語を Java に絞って自分の考えを明確にしておきます。 結論から書きましょう。 「Java(とC#) で遅延評価って書いてあるものは遅延評価ではない」です。 Java における「評価」とは まず一番最初に、Java で「評価」って言うと、どういうことを指すのかを確認しておきます。 言語仕様の該当部分を要約すると、こんな感じでしょうか。 プログラム中の式を評価すると、結果は 変数 値 無し のうちのどれかとなる。 評価した結果が値になる、というのはいいでしょう。それ以外の 2 つを軽く説明します。 評価の結果が「変数」とは? コメント欄で指摘が入っています。 代入の結果は変数ではありません(15.26)。 結果が変数となるのは、ローカル変数、現在のオブジェクトやクラスの変数、フィールド

    n2s
    n2s 2013/01/02
  • 遅延評価ってなんなのさ - ぐるぐる~

    何なんでしょうね。分かりません。 自分の頭の中をとりあえず整理するためのエントリなので、あなたの頭を混乱させるだけになるかもしれません。 もし混乱してしまったら忘れてください。え、無理?忘れてください。 自分の考えを明確にしたので、こちらをどうぞ。 遅延評価いうなキャンペーンとかどうか - ぐるぐる~ これは遅延評価ですか? 関数を渡すだけ // Scala def hoge(f: Unit => Int) = for (i <- 1 to 2) println(f()) (* F# *) let hoge f = for i in 1..2 do printfn "%d" (f()) この関数に渡す f は 2 回実行されます。そのため、f の中で画面出力をしていた場合、2 回出力されます。 これは遅延評価でしょうか?俺は違うと思います。 ここは多くの人で合意が取れると思ってます。 Sc

    遅延評価ってなんなのさ - ぐるぐる~
    n2s
    n2s 2013/01/02
  • 質問に答えてみる - ぐるぐる~

    リポジトリ見てたら、question.txt なるファイルを見つけたので、その質問に答えてみます。 hard オプションなしの git reset に何の意味があるの? reset には、ファイルを指定する reset と、ファイルを指定しない reset の 2 種類があります。 で、hard オプションを持つのは、ファイルを指定しない方です。 まずはこちらから見ていきましょう。 ファイルを指定しない reset ファイルを指定しない reset には、 soft mixed hard merge keep と言う 5 つのモードがあります。 ここでは代表的な上三つを紹介します。 デフォルトは mixed で、これが質問にあった「hard オプションなしの git reset」です。 soft このモードでは、HEAD のみ指定コミットの状態となり、インデックスも作業ツリーも変更されませ

    質問に答えてみる - ぐるぐる~
    n2s
    n2s 2012/01/17
  • コンフリクトが発生しなくても壊れる場合 - ぐるぐる~

    push したら誰かが先に push していたので失敗した。 なので pull したが、コンフリクト (競合) は発生しなかったので何も確認せずにそのまま push した。 何も問題なさそうですね。 ・・・当ですか? 例えばこんな状況を考えてみましょう。 最初の状態 A さんと B さんと C さんが登場します。 作っているのは Web ページで、コードはこんな感じ。 <html> <head> <title>hoge</title> <style> .menus { overflow: auto; } ul { margin: 0; padding: 0; list-style-type: none; } .button { float: left; width: 100px; margin: 0; padding: 10px 0; text-align: center; backgr

    コンフリクトが発生しなくても壊れる場合 - ぐるぐる~
    n2s
    n2s 2012/01/17
  • SCM Boot Camp 2 in Tokyo に行ってきた - ぐるぐる~

    今回は Git の講師として参加しました。 2 回目と言うこともあって、よりスムーズに進めることができたように思います。 個人的なもくろみ 今回参加して、SCM Boot Camp の DVCS イベントの部分はある程度パッケージ化したいと考えるようになりました。 まだ 2 回しかやっていませんが、DVCS (少なくとも Git) の効率的な習得のためのスキームというのが見えてきた感じです。 最終的には、講師が 1 人いれば小規模なイベントを開くことのできるところまで落とし込めるのでは、と考えています。 以下時系列順の雑多な感想や補足など 開催前 今回は、開催の準備として数回 Lingr によるミーティングを行いました。 資料の作成も段階的に行うことができたのでフィードバックを取り入れることができてとてもよかったです。 にも関わらず、 30秒前までずっと作り続けていたらしいので、たぶんあり

    n2s
    n2s 2011/11/21
  • 言わなかったこと・発表資料だけではわからないこと - ぐるぐる~

    昨日のわんくまで言わなかったこと、発表資料だけではわからないことです。 ちなみに発表資料はこちら→わんくま 名古屋勉強会 #11 の発表用資料 - ぐるぐる〜 PowerShell のコマンド 発表資料の 13〜16 ページで PowerShell を開いてなにやらコマンドを実行してますが、これは現在のフォルダ以下に存在する _svn フォルダの数を数えています。 ls -r -fo | %{ $_svn = 0 }{ if ($_.Name -eq '_svn') { $_svn++ } }{ $_svn } -r オプションで子の階層も調べ、-fo オプションで隠しフォルダも含めています。 今考えたら、 (ls -i '_svn' -r -fo).Lengthでいいですね。 -i オプションで指定した名前のアイテムのみを取得するようにしています。 しょっぱなから Git 関係ない話でご

    言わなかったこと・発表資料だけではわからないこと - ぐるぐる~
    n2s
    n2s 2011/08/23
  • ぐるぐる~

    先日の第5回Fun Fan Fsharpで型プロバイダー(TypeProvider)の話がありました。 最近は全然TypeProviderを触っていなかったのですが、久しぶりに触ってみるかー、と思って色々触ってみました。 発表資料でもあったように、イマドキは dotnet コマンドでテンプレートが提供されているんですねぇ・・・ TypeProviderとは コンパイル時に型(Type)を提供する(Provide)しくみです。 分かりやすいのはJSONとかCSVとかに対するものでしょうか。 #r "nuget: FSharp.Data" open FSharp.Data // JsonProviderを使って、[{"name": "aaa", "age": 20}]という形に対応する型を提供してもらう // <...>の中が「静的パラメーター」で、JsonProviderはこの情報を使って型

    ぐるぐる~
    n2s
    n2s 2011/08/02
    id:entry:52986166でおすすめされたので
  • 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版
  • Git 基礎最速マスター - ぐるぐる~

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

    Git 基礎最速マスター - ぐるぐる~
    n2s
    n2s 2010/03/08
  • msysgit で日本語ファイル名を扱えるようにする (途中) - ぐるぐる~

    msysgit で日語ファイル名を含むリポジトリの clone を作ると、文字化けしちゃうことがあります。 とりあえず試したのは、 clone 元 結果 別 PC の Cygwin 版 Git 文字化け 同一 PC の msysgit 文字化けしない と、こんな感じです。 他のパターンを試した方は是非教えてください。 で、このままではイヤなので、日語ファイル名が扱えるように msysgit に手を入れてみました*1。 ただ、まだ途中なので、もっと良い方法がある!とか、完全版にしてやんよ!って人がいたら是非! 前提条件 git clone を使うので何らかの Git を入れて、設定もしておいてください。 以下のページを参考にすると良いでしょう。 Git環境の構築(msysgit編) - なか日記 Gitでの日語表示対応(msysgit編) - なか日記 Gitでの日本語入力対応(msy

    msysgit で日本語ファイル名を扱えるようにする (途中) - ぐるぐる~
  • 1