Hatena::ブログ(Diary)

当面C#と.NETな記録 このページをアンテナに追加 RSSフィード

2008/6/18 (水)

[] 難問解決  難問解決を含むブックマーク  難問解決のブックマークコメント

国立情報学研究所の先生が型付きラムダ計算についての難問を解決したそうで。未解決問題22問のリストがあって、このリスト中の問題解決は世界初だって。スゲー!

型付きラムダ計算の未解決問題集

http://tlca.di.unito.it/opltlca/

一問目は 1958年 Haskell Curry 由来の問題!はぅ。

Problem # 5 にある、分数みたいな表記法の意味が知りたいです。こないだの「プログラム意味論」にもこの表記が出てくるんですが、なんの説明もなくてこれが何を意味しているんだかさっぱり…。まあ、何から何まで難しい本でした…

______ 2008/06/19 03:53 http://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%BC%E3%82%AF%E3%82%A8%E3%83%B3%E3%83%88%E8%A8%88%E7%AE%97

siokoshousiokoshou 2008/06/19 09:35 おぉぉ!ありがとうございます!

トラックバック - http://d.hatena.ne.jp/siokoshou/20080618

2008/6/11 (水)

[] Singleton スニペット  Singleton スニペットを含むブックマーク  Singleton スニペットのブックマークコメント

スニペット使ってますか? cw 大好きです。

シングルトンのスニペットがあればいいなぁと思いつつ、そうそうシングルトンを使うわけでもないので今日まで放置でしたが、大量のシングルトンが必要になって(つっこまないで(^^;)ついに書きました。

書いたというか、くまーさんのスニペットを改造しました。

「singleton.snippet」みたいな名前を付けて、「My Documents\Visual Studio 2008\Code Snippets\Visual C#\My Code Snippets」もしくはそれ相当のフォルダに入れればOK。「singleton」で呼び出せます。

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
 <CodeSnippet Format="1.0.0">
  <Header>
   <Title>Singleton</Title>
   <Shortcut>singleton</Shortcut>
   <Description>シングルトンクラス スニペット</Description>
   <Author>Anand Kumar, siokoshou</Author>
   <SnippetTypes>
    <SnippetType>Expansion</SnippetType>
   </SnippetTypes>
  </Header>
  <Snippet>
   <Declarations>
    <Literal>
     <ID>classname</ID>
     <ToolTip>Class name</ToolTip>
     <Default>ClassName</Default>
    </Literal>
    <Literal>
     <ID>property</ID>
     <ToolTip>Get Instance Property</ToolTip>
     <Default>Instance</Default>
    </Literal>
   </Declarations>
   <Code Language="csharp">
    <![CDATA[public class $classname$
    {
      private static readonly $classname$ _Instance = new $classname$();
      public static $classname$ $property$ { get { return _Instance; } }
      private $classname$()
      {$end$
      }
    }]]>
   </Code>
  </Snippet>
 </CodeSnippet>
</CodeSnippets>

自分はVB使わないから最近まで知らなかったけど、VBのコードスニペットってすごい充実ぶりなんですね。スニペットだけでアプリ作れるんじゃね?くらいの充実っぷりでした。C#のスニペットも充実するといいなぁ。

ところで、今は「.VSIファイル」なるものがあって、コードスニペットを公開するときなんかに使えるんですね。まあ、使わないけど(^^;

最後にお約束。シングルトンのご利用は計画的に!(説得力ないな…)

tsutomu3tsutomu3 2008/06/17 11:36 > 大量のシングルトンが必要
こんなのではいかが?

public static class Singleton<T> where T : new()
{
private static readonly T _Instance = new T();
public static T Instance { get { return _Instance; } }
}

siokoshousiokoshou 2008/06/18 20:57 これだと、new Singleton<Hoge>() としたときはシングルトンになるけど、new Hoge() とすることを阻止できないのが難点ですねぇ。
ほかに、シングルトンクラスを作って継承でうまくやれないかとも考えたけど、これもうまくいかなかったので、結局スニペットで大量に作りました。
コードを重複させずに複数のシングルトンクラスを作る方法って、もしかしてないのかなぁ…

そーす屋そーす屋 2008/08/25 16:35 yanesdk c#からですがどうでしょうか?

public sealed class Singleton<T> where T : class,new()
{
  public static T Instance
  {
    get
 {
   // double checked locking
if (instance_ == null)
{
  lock (syncRoot)
  {
   if (instance_ == null)
instance_ = new T();
  }
}
return instance_;
 }
  }
  private static volatile T instance_;
  private static object syncRoot = new Object();
  // newして使うんじゃないぞよ
  private Singleton() { }
}

僕も使わせて貰いましたが、とても便利でしたよ

siokoshousiokoshou 2008/08/26 00:14 これも tsutomu3 のと同じで、new Singleton<Hoge>() としたときはシングルトンになるけど、new Hoge() とすることを阻止できないのが難点です。
シングルトンって、やはりそういう使い方をされることが多いんですねぇ…。

トラックバック - http://d.hatena.ne.jp/siokoshou/20080611
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 06 | 09 | 11 | 12 |
2007 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 08 | 09 | 10 | 12 |
2009 | 01 | 03 | 04 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 07 |
2011 | 04 | 07 | 10 |
2012 | 04 | 12 |
2013 | 08 |
2014 | 03 | 08 |
2017 | 09 |