サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
2024年ランキング
katona.hatenadiary.org
型推論を無効にする方法を発見。 型推論をごまかす Y コンビネータ L の定義は、本当は L x y = x (y y) です。(y y)の部分が自己言及になって、GHC ではこの部分の型をうまく処理できません。そこで、unsafeCoerce で型推論をごまかしています。 http://d.hatena.ne.jp/kazu-yamamoto/20100519/1274240859 おかげで、断念していたHaskell版のチャーチ数の引き算とYコンビネータを使った割り算(と剰余)が作れた。 これで加減乗除の基本演算がそろった。感謝。 import Unsafe.Coerce m x = x (unsafeCoerce x) y f = m (\x -> f (m x)) true x y = x false x y = y not' p = p false true and' p q =
gcc版のWindowsCE用のクロスコンパイラのプロジェクトがあった。 CeGCC's web page The CeGCC project implements cross-development tools for Windows CE (PocketPC). http://cegcc.sourceforge.net/ ソースもあったので、MacOSXで試してみる。 % wget http://nchc.dl.sourceforge.net/sourceforge/cegcc/cegcc-0.50-src.tar.gz % tar zxf cegcc-0.50-src.tar.gz % cd cegcc-0.50-src/src % sh build-cegcc.sh % sh build-mingw32ce.shパスを追加してコンパイルをしてみる。 arm-wince-cegcc-
House - Haskell User's Operating System and Environment House is a demo of software written in Haskell, running in a standalone environment. http://programatica.cs.pdx.edu/House/ HaskellでスタンドアローンのOSが書けるとは。 どうでもいいけど、頭文字を順番にとったら、HouseじゃなくてHuoseなんじゃないだろうか。 House 0.8.93 (vanilla House ported to GHC 6.8.2) [January 22nd, 2009] http://web.cecs.pdx.edu/~kennyg/house/ 最新版は上記の別サイトにある。 ここからfdのイメージをダウンロードしてq
まさにこれにはまった。 関連づけに使うプログラムはバージョン番号が入ったフォルダに展開しちゃダメだ。 「プログラムから開く」一覧を生成する際に「参照先が存在しない」として表示されません。 さらにまずいのは、エントリ自体はすでに存在するため、「参照」で移動先のプログラムを指定しても修正されず、結局、プログラムを参照できない状態に陥ったわけです。 この場合の解決策としては、HKLM\Software\Classes\Applications または HKU\...\Software\Classes\Applications 中の該当プログラムのエントリを一度削除します。 その後、改めて「プログラムから開く」で移動先のプログラムを参照すれば、新規エントリとして正常に追加されます。 http://www.glamenv-septzen.net/file_assoc.html レジストリエディタを使
日付と時刻を両方表現したい場合は2008-05-16T11:25:30+09:00 つまり日付と時刻をTでつなげる。 これが世界的スタンダードとしてISO8601とRFC3339に定められた日付と時刻の表現方法。 有名どころの言語やらデータベースその他ミドルウェアはすべてこれに沿った表記を解釈し入出力できるようになっている。 プログラマのみなさんは覚えておいて損はないというか絶対覚えておいたほうがいい。 日付がスラッシュ区切り(YYYY/MM/DD)だったりするソフトやらライブラリやらが巷に散見されるが、まったくおすすめできない。 http://neta.ywcafe.net/000851.html というわけで普段使っている言語でどの程度対応しているか調べてみた。 ISO8601とRFC3339があがってるけどW3CDTFも検索キーワードに入れた方が良さそう。 ちなみに、HTTP,SMT
Time: tsc clocksource has been installed. Clocksource tsc unstable (delta = 76024924 ns) Time: pit clocksource has been installed.カーネルブート時にこんなメッセージが出るのが気になる。 o RTC o PIT (Programmable Interval Timer) o Local APIC (Advanced Programmable Interrupt Controller) (a.k.a. lapic) o ACPI Timer o TSC* (Time Stamp Counter) o HPET (High Precision Event Timer) TSC は i686 以降でサポートされているカウンタで,セット・リセットできない(読み出し専用)し
omni補完、ヘルプ、デバッグなどお便利機能満載。 Haskell mode for Vim いい感じかも。 激しく使えそうなコマンドが、 :GHCi main ghciで関数mainを作用させられる。 http://d.hatena.ne.jp/tanakaBox/20071018/1192653919 良さそうなのでインストールしてみる。 インストール方法 http://www.cs.kent.ac.uk/people/staff/cr3/toolbox/haskell/Vim/ からhaskellmode-20071105.vbaをダウンロード vbaファイルをvimで開いて :source % でこのファイル自身を実行 .vimrcに以下を追加(ブラウザは適宜変更) au Bufenter *.hs compiler ghc let g:haddock_browser = "C:/
とりあえずURL欄とコンテンツ表示欄だけの最小限の構成。 <browser>というタグがあるので簡単に作れる。 <?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <window title="browser" width="800" height="600" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <textbox onchange="this.nextSibling.loadURI(this.value)"/> <browser type="content" flex="1"/> </window>他にも、<iframe>を使っても出来るらしい。 <tabbrowse
以下のhello.scalaが変更無しに両方で実行出来るか試す。 object hello extends Application { println("Hello, world!") } Java編 コンパイル。これでhello.classが出来る。(一緒にhello$.classも出来る) > scalac hello.scala直接hello.classを実行 > java -cp c:\scala\lib\scala-library.jar;. hello Hello, world!ラッパーを使って実行 > scala hello Hello, world! .NET編 コンパイル。これでhello.exeが出来る。(一緒にhello.msilも出来る) > scalac-net hello.scala直接hello.exeを実行 > hello Hello, world!ラッパー
木構造が与えられる。 := ( ...) という構造。 これから、子→親の対応を表すalistを作る手続きを書け、というもの。 http://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3a%e3%83%aa%e3%82%b9%e3%83%88%e5%87%a6%e7%90%86#H-ne4pu7 この問題をやってみた (use util.match) (define *tree* '(Root (Spine (Neck (Head)) (RClavicle (RUpperArm (RLowerArm (RHand)))) (LClavicle (LUpperArm (LLowerArm (LHand))))) (RHip (RUpperLeg (RLowerLeg (RFoot)))) (LHip (LUpperLeg (LLowerLeg
sh #!/bin/sh echo -e "Content-Type: text/plain\n\nHello sh" awk #!/usr/bin/awk -f BEGIN{print "Content-Type: text/plain\n\nHello awk"} make #!/usr/bin/make -sf all: echo -e "Content-Type: text/plain\n\nHello make" sed #!/bin/sed 1d Content-Type: text/plain Hello sed egrep #!/bin/egrep ^([^#]|$) Content-Type: text/plain Hello egrep tail #!/usr/bin/tail -3 Content-Type: text/plain Hello tail dc #!/u
今までScheme系とCommonLisp系って勝手に呼んでたけど、こういう用語があったのか。 最近、「CommonLispはLisp-2で、SchemeはLisp-1である」という文章を読んだ 名前空間がひとつ(関数と変数に区別がない)のがLisp-1で、 区別があるのがLisp-2であるということだそうだ。なるほど。 だとすると、PythonやJavaScriptはLisp-1で、RubyはLisp-2だな。 http://www.rubyist.net/~matz/20070419.html#p01 「func.call(arg)なRuby」がCommon Lisp(っていうかLisp-2)であることは事実ですが、「$coderef->(@args)なPerl」も同類だと思いますよ。せめて「$coderef(@args)」とできないと。 Pythonみたいに、「関数呼出しとは関数リフ
このページを最初にブックマークしてみませんか?
『katona.hatenadiary.org』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く