タグ

CSharpに関するsomemoのブックマーク (6)

  • F# – 泥庭

    実践 F# 関数型プログラミング入門で「末尾再帰」とか「末尾最適化」というものを知りました。 作者様のブログによると、C#には末尾最適化はないそうだ。 よく訓練された C# 使いならばご存じの通り、C# に末尾最適化はない。より正確に言い換えるなら、C# 4.0 コンパイラは ‘tail.’ プリフィックスを付与しない。このことによって、C# プログラミングにおいては、再帰はおよそ避けるべきものとして認識されている。 http://igeta.cocolog-nifty.com/blog/2011/02/tailcall.html でも、x64版だと末尾最適化が行われるよと聞いたのと、ちょっと気になる書き方をしているので調べてみました。 とりあえず、普通の再帰 class Program { public static void Main(string[] args) { Console.

    F# – 泥庭
  • out (C# リファレンス)

    更新 : 2007 年 11 月 out キーワードを使用すると、引数が参照渡しされます。これは ref キーワードに似ていますが、ref の場合は、変数を初期化してから渡す必要があります。out パラメータを使用するには、メソッド定義と呼び出し元のメソッドの両方で out キーワードを明示的に使用する必要があります。次に例を示します。 class OutExample { static void Method(out int i) { i = 44; } static void Main() { int value; Method(out value); // value is now 44 } } out 引数として渡す変数は、渡す前に初期化する必要はありませんが、呼び出されたメソッドでは、メソッドから制御を戻す前に値を代入する必要があります。 ref キーワードと out キーワード

    out (C# リファレンス)
  • C# の素晴らしさを語る会 で喋ってきました。 - 亀岡的プログラマ日記

    F#C# の素晴らしさを語る会 で喋ってきました。 - C#の素晴らしさを語る会 - VSハッカソン倶楽部 | Doorkeeper C#の話をしていないじゃないか、と評判でしたが。 スライド C#とaop from Hiroshi Maekawa コード PropertyChangedの部分だけ、一応載せておきますね。 PersonViewModel.csがビルド時にPersonViewModel.Modified.csにモジュールレベルで変換される、というのがポイントですね。 いい忘れたこと 今回の勉強会、結構初心者のかたも来られていたらしく、その割にはちょいとばかりハードな内容だったかもしれません。 でも、発表の冒頭で言ったように、「なんかよくわからないけれど、こういう技術を使えばこんなことができるらしい」というイメージだけでも、できるだけ多く拾ってもらえればと思っています。 僕の尊

    C# の素晴らしさを語る会 で喋ってきました。 - 亀岡的プログラマ日記
  • Unityで活かせるLINQの底力!! (前編)

    Unity3Dの公式マニュアル翻訳やってる人がiPhone, Androidでのゲームアプリ開発について記事にしています。Unity3Dでの開発をメインにAsset Storeで入手できるNGUI, Playmakerや, Oculus Riftなど作者サイトからの英語情報を翻訳していきます 最近、アセットストアでダウンロードしたコードに たまたま、LINQ を活用しているものがあって興味をもった。 そして「なるほどLINQ で書くと美しく見やすいコードを書ける場合があるのだ!」と素直に感じた。 調べてみたら、一般論としてUnity でどのような場合に活用すると良いか、Unity Gems に良い記事があったので2 回の投稿に分けて翻訳を紹介させてもらいたい。 長文ゴメン!!でもLINQをUnityでどう活用するか知らなかった人は覚えとくと、きっと役立つぜ! http://unitygem

  • Java 8を関数型っぽく使うためのおまじないをF#でやってみた - ぐるぐる~

    Java 8を関数型っぽく使うためのおまじない - きしだのはてな Java 8を関数型っぽく使うためのおまじないをC#でやってみた - ぐるぐる~ Java も C# も大変ですね。 F# さんは、ラムダ式も関数型も最初から使えたので、似たようなことはすでにできます。 上記の記事のパクリなので、上記の記事をまずは読んでから読むことをおすすめします。 関数型(関数を表す型の方) F# では FSharpFunc という型があります。名前空間や型パラメータまで含めると、Microsoft.FSharp.Core.FSharpFunc<'T, 'U> です。 ただ、この型を直接使うことはありませんし、見ることもそうそうないです。 その代わりに、'T -> 'U という表記が使えます。「'T を受け取って 'U を返す関数」と読みます。 ちなみに、型パラメータの最初に「'」が付いているのが割と大

    Java 8を関数型っぽく使うためのおまじないをF#でやってみた - ぐるぐる~
  • [DIY]55行で作るC#用テンプレートエンジン

    http://anond.hatelabo.jp/20071030034313 の二番煎じ あまりのアホさに、作ってて気が狂いかけた 方針 <%= expr %> で C# の式を echo(Htmlエスケープ付き)<% code %> で C# のコードを埋め込みeval……使ってもいいよね? using System; using System.CodeDom.Compiler; using System.Collections.Generic; using System.IO; using System.Reflection; using Microsoft.CSharp; delegate void ConvertTemplateDelegate(TextWriter tw, Dictionary<object, object> args); static class Templa

    [DIY]55行で作るC#用テンプレートエンジン
  • 1