タグ

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

  • .NETの標準ライブラリと仲良くする話 - ぐるぐる~

    F# Advent Calendar 2013の9日目の記事です。 昨日の記事は、id:nenono さんの「F# でリフレクション/式木に触れてみる」でした。 リフレクション、扱いにくいですよねぇ・・・ リフレクションといえば、LangExtシリーズの一つとしてReflectionExtなんてのを作っているんですが、 時間がないうえにいろいろ問題もあって滞ってます・・・ さて、今回は.NETの標準ライブラリと仲良くする話(もしくはBasis.Coreの紹介)です。 はじめに F#は.NET Frameworkの資産が使えるため、標準状態で色々なことができます。 これはF#の利点の一つですが、.NET Frameworkは関数型言語のために作られたわけではありません。 そのため、F#から.NET Frameworkの標準ライブラリを使うと、F#の標準ライブラリとは違った使い心地を体験するこ

    .NETの標準ライブラリと仲良くする話 - ぐるぐる~
    youz
    youz 2013/12/10
  • match があれば TryParse いらないんじゃないか - ぐるぐる~

    Scala の match を真似て C# で色々書いているわけですが、なんかもう TryParse は Obsolete でいいんじゃ、と思えてきました。 例えばですよ、 public static T MatchInt<T>(this string self, Func<int, T> ifMatch, Func<T> ifNotMatch) { int result; return int.TryParse(self, out result) ? ifMatch(result) : ifNotMatch(); } public static T MatchInt<T>(this string self, Func<int, T> ifMatch) { return MatchInt<T>(self, ifMatch, () => default(T)); } こんな拡張メソッドを用意

    match があれば TryParse いらないんじゃないか - ぐるぐる~
    youz
    youz 2010/04/14
  • (普通の) 再帰 CTE を hierarchyid で - ぐるぐる~

    SQL Server 2008 に実装されている hierarchyid 型は、経路列挙モデルをベースにした型なので、再帰 CTE を置き換えることができる。 例えば、 SQL Server 2005で再帰クエリ - taediumの日記 の再帰 CTE を hierarchyid で実現してみる。 使用するテーブル CREATE TABLE [dbo].[Classes]( [id] [hierarchyid] NOT NULL, [name] [nvarchar](50) NOT NULL, CONSTRAINT [PK_Classes] PRIMARY KEY CLUSTERED ( [id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS

    (普通の) 再帰 CTE を hierarchyid で - ぐるぐる~
    youz
    youz 2009/07/09
  • SQL で数式を評価 (完全版 + α) - ぐるぐる~

    大阪で働く友人 mi との合作*1で不完全版が完全版に! やっぱり mi はすごかった!! WITH Input(id, str) AS ( -- idと数式を渡す SELECT 1, '1 + 3 / -8' UNION ALL SELECT 2, '2*3*4*5+99' UNION ALL SELECT 3, '4 * (9 - 4) / (2 * 6 - 2) + 8' UNION ALL SELECT 4, '1 + ((123 * 3 - 69) / 100)' UNION ALL SELECT 5, '2.45/8.5*9.27+(5*0.0023)' ) , Separators(i, ch, str_src, priority) AS ( SELECT 1, '-', 1, 1 UNION ALL SELECT 2, '+', 1, 1 UNION ALL SELECT

    SQL で数式を評価 (完全版 + α) - ぐるぐる~
    youz
    youz 2009/06/16
  • BrainCrash in SQL - ぐるぐる~

    Brainf*ck in SQL を改造して、BrainCrash in SQL を書いてみました! BrainCrash については 404 Not Found を参考にしてください。 WITH -- 入力 Input(id, bc_program, stdin) AS ( -- Hello, World!と標準出力に出力するプログラム SELECT 0, '', '' -- OR計算 UNION ALL SELECT 1, '|', '' -- OR計算2 UNION ALL SELECT 2, '|<', '' -- AND計算 UNION ALL SELECT 3, '&', '' -- AND計算2 UNION ALL SELECT 4, '&<', '' -- NOT計算 UNION ALL SELECT 5, '[>]++++++++++[-<<<<<<<<<<<<<++++

    BrainCrash in SQL - ぐるぐる~
  • ゆの in MySQL - ぐるぐる~

    JavaとかC++は最近触ってないし、C#等も使いこなせてるわけではないから、とりあえずMySQLでやってみた。 SELECT 'ひだまりスケッチX365 来週も見てくださいね!' FROM (SELECT '1話' AS X, '見逃した...orz' AS _) T WHERE X / _ / X < '来週も見てくださいね!' IS NULL; うっは、なんのひねりもねーw SQL Serverは型に厳格っぽいからたぶん動かない。 追記: ガーン、SQLでやろうという人なんてほかにはいないと思ったのにいたよ。 なるほど、別名として「:来週も見てくださいね!」を入れるという発想はなかったな。 というわけで、上のをちと改変。 SELECT 'ひだまりスケッチX365 来週も見てくださいね!' FROM (SELECT '1話' AS X, '見逃した...orz' AS _, '来週は見

    ゆの in MySQL - ぐるぐる~
  • 1