2008-03-01から1ヶ月間の記事一覧

「プログラミング in OCaml」をF#で(3)

今週も元気に進めたいと思います。 普段のエディタはKaoriYa様版GVIMを使用しており、F#のソース(*.fs)も色分けされているので微妙な違和(letとか明らかに重要なキーワードがハイライトされない、drop、maxとかはなぜかハイライトされる)を感じつつも、なん…

「プログラミング in OCaml」をF#で(2)

今日も元気に進めていきたいと思います。4章だけです。全然進まないので、この日記をつけていなければすでに断念していた自信がある。 P76 OCamlの型推論は完全性「変数宣言に": int"などの型の注釈をつけても型がつくのであれば、省略しても必ず型推論が成…

「プログラミング in OCaml」をF#で(1)

あまりにもF#がわからず、まさにわからん殺しだったので、プログラミング in OCaml ~関数型プログラミングの基礎からGUI構築まで~をF#で練習問題解きながら進める事にしました。目標は練習問題を全部解くこと。LablTkは実行できなさそうなので、14章まで。今…

F#ならUIAutomation出来た!!

#r @"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\UIAutomationClient.dll";; #r @"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\UIAutomationTypes.dll";; open System open System.Windows.Automation let gc (e…

IronRubyでもUIAutomation出来ない……

PowerShellで挫折したので、IronRubyで同じような事が出来るか挑戦。ClrStringとStringを比較すると必ずfalseになるとか、Namespaceを省略して書く方法がわからん、とかを乗り越えてボタンを押せそうなところまで行ったのですが、やっぱり、だめだった……。 r…

PowerShellで(値を初期化しない、型付けされた)変数は宣言できるか?

Scripting Weblog : PowerShellで(値を初期化しない)変数宣言はできるのか? microsoft.public.windows.powershell : Testing for missing parameters in a function. PowerShellでは型付けされた変数が宣言できます。 PS > [int]$i = 38 PS > $i = "chatm…

UIAutomationについて(2)

Problem finding AutomationElement in PowerShell script - MSDN Forums PowerShellからUIAutomationが上手く動かせねぇー、って割とポピュラーな疑問だったらしく、ちゃんと検索したらいくつか出てきた。ここではBruce Payetteさんが答えておられる……。 問…

UIAutomationについて

msdn : UI オートメーションの基礎 MSDN Magazine : テストの実行: Microsoft UI オートメーション ライブラリ msdn : UI Spy (UISpy.exe) .NET Framework 3.0から追加になっていたらしい、UI オートメーションが面白い。何が出来るか、については、Microsof…

スクリプトブロックはクロージャではない

PowerShellのスクリプトブロックは全然クロージャではない、ということに気付きました。そもそも、何故クロージャだと思い込んでいたのかが謎ですが……。レキシカルクロージャ(笑)ではない、というのが正しいでしょうか。よくわからないですが……。 function f…

PowerShellからWin32APIを呼ぶ

PowerShellからWin32APIを呼ぶ方法は、Precision Computing - Get the Owner of a Process in PowerShell -- P/Invoke and Ref/Out Parametersを起源にして? 色々紹介されてるみたいなのですが、自分で使ってる奴を紹介します。 function New-PType() { [Ap…

PowerShellでテトリス

本当は七行で作りたかったんだけど、全然無理だった……。 ←→ 左右へブロック移動 ↓ ブロックを速く落とす(使わない) ↑ ブロックを下まで落とす Enter 回転(右のみ) $RANDOM = New-Object -TypeName 'Random' # 直径, 左上, ブロックの位置 × 4 $BLOCKS = @( @…

PowerShellでエラトステネスの篩

$a=,1;$s=2..200;while($s){$a+=$s[0];$s=@($s|?{$_%$s[0]})};$a 2008 Winter Scripting Games - 上級イベント 6が「1 〜 200 の範囲内に存在するすべての素数を計算」というものだったので、色々な人のスクリプトが見られます。上のは頑張って出来る限り短…

PowerShellで総当り(改)

全件組み合わせてる部分の{}があまりにもというかイミフなので書き直してみました。 $solve = 1..5 | % { ( $baker = $_ ) } | % { 1..5 } | % { ( $cooper = $_ ) } | % { 1..5 } | % { ( $fletcher = $_ ) } | % { 1..5 } | % { ( $miller = $_ ) } | % { …

PowerShellで総当り

紛れもない普通の総当たりです……。Non Determinism - Rubyのある風景で紹介されている、 Baker, Cooper, Fletcher, MillerとSmithは五階建てアパートの異なる階に住んでいる。Bakerは最上階に住むのではない。Cooperは最下階に住むのではない。 Fletcherは最…

PSProvider出来た!

とりあえず動くようになりました。ソースは id:ps1:20000101:1204560447、一緒に使う、書式指定ファイルはid:ps1:20000102:1204561784です。 現在読み込んでるAssemblyからリフレクションで型情報を全部持ってきて名前空間とクラスをディレクトリ、メソッド…

PowerShell Providerの作り方資料

ロードしているアセンブリの名前空間をディレクトリに見立てて、クラスや、クラスのメンバを表示できるPSProviderを作成しています。 参考にした資料をメモしておきます。 MSDN - How to Create a Windows PowerShell Provider ここに詳しい作り方が載ってい…