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

継承とかmixinとか。

Scalaには、traitというキーワードがあって、mixin専用のクラスというか、objectを作る事が出来たりするですな。 こいつは、中々に面白い。

Structural Subtyping の実装。

何日か前に痺れたStructural Subtypingが.scalaから.classにコンパイルされると、 どういう実装になっているのか気になったので、jadってみますた。

::の件、続き。

scala.Listの中に、 sealed abstract class List[+A] extends Seq[A]こんなクラスがありましたよ。 このクラスは、こんなメソッドを持っているます。 def ::[B >: A] (x: B): List[B] = new scala.::(x, this)昨日、抜粋したcase class の::が何故、いきなり…

car とか cdr の件。

カーとかクダーとか、聞いて、::が何故case classなのか分かりましたよ。 ちなみに、scala.Listには、 こんなcase classもありましたよ、やりましたね。 @SerialVersionUID(0 - 8256821097970055419L) case object Nil extends List[Nothing] { override def…

昨日のDuck Typingモドキなアレ。

structural subtyping と言うらしい。 関数型言語とは、どうやら直線的に関係がある訳でも無いみたい。 まぁ、何か色々議論がある様だけども、良く分からんので、後回し…とす。

関数型言語の初学者はこれをヨメと。Twitされますた。

数理科学的バグ撲滅方法論のすすめ---目次 http://twitter.com/ashigeru/statuses/773216887 なるほど、読み易い感じ。ありがとうござます。

::とか:::の件。

ソースコードをダウンロードしたら、疑問は氷解した。Listに、::ってcase classが定義されていた。 @SerialVersionUID(0L - 8476791151983527571L) final case class ::[B](private var hd: B, private[scala] var tl: List[B]) extends List[B] { def head …

記号をメソッド名に使えるとこういう事になるから困る。

def main(args: Array[String]) { class Stack[A <:AnyVal](val elem:A) { def >>[B <: A](newone: B): Stack[B] = new Stack[B](newone) { override def toString() = newone.toString() + " " + Stack.this.toString() } override def toString() = elem toString } var s = new Stack(10) >> 4 >> 11 >> 6 >> 1 println(…</:></:anyval](val>

で、一体何が起きてるん?

println(List(1,2) :: List(3,4)) println(List(1,2) ::: List(3,4)) コンソールには、 List(List(1, 2), 3, 4) List(1, 2, 3, 4) と言う風に出力さりる。 一体どうなったら、こういう結果になるのだろうか。ワカラン…

恐るべし・・・

何かと出遅れた感タプシなのだけど、ちょっと触ってみてる。 package aaa object Flyers { class Bird(val name: String) { def fly(height : int) { Console.println("I'm Fly") } } class Plane(val callsign: String) { def fly(height : int) = { printl…

Mercurialが軽く祭りになっているようだ。

SCM

と言う訳で、僕にとっての期待の星であるMercurialEclipseのサイトを久しぶりに見てみる。 Implemented mercurial commands * hg init * hg clone * hg push * hg pull (no update/merge yet) * hg commit * hg add <file> * hg remove <file> * hg diff <file> * hg log <file> (Out</file></file></file></file>…

何だろうこの開き直りきった感のあるテクノロジは。

TSSのフィードで拾ったデスヨ。 JSSP (JavaScript Server Pages) is a runtime library to generate web pages using JavaScript on a Java web server. It requires a web server that can run Java Servlets (such as Tomcat, JBoss or others). サンプル…

Taskをアドインするとか、そういう話。

重要なのは、 ThoughtWorks.CruiseControl.Core.ITask タスクである為に実装するインターフェース。Runメソッドが定義されている。 ThoughtWorks.CruiseControl.Core.IIntegrationResult Runメソッドの引数となるオブジェクト。現在の処理プロセスに紐付くコ…

MS Project Server 2007 SDKと戯れる。

QueuePublishを忘れると、何か色んなトコロから、例えばProject Web Accessから、作成したProjectを確認する事が出来ないので注意。 ちなみに、パラメータのwssUrlは、nullや空文字食わせても、project名をテキトーに使ってくれる。

Office系のSDKのありか。

SharePoint Server 2007 SDK: Software Development Kit Project 2007 SDK: Software Development Kit いつも見つけられない。見つからない。一体どうなっているのか。と言う訳。

何か気持ち悪いアレ。

Language Oriented Programming (LOP) is concerned with giving users the mechanism to define DSLs or to extend existing ones. XMF is an open source programming language which supports the LOP paradigm. All aspects of XMF can be easily extend…

MS Project Server 2007 と仲良くするには。

ドキュメントが激しく発見し辛いトコロにあるので、ショートカット的なアレをメモ。 Project.CheckOutProject Method (WebSvcProject) PDS and PSI Code Examples Project 2007 SDK: Software Development Kit JobIdというGuildをサーバにリクエストを投げる…

構成管理ツール的なアレの話。

MSのテクノロジと言うかツールがスゲーと言う話。 まず最初に、 Visual Studio Team System 2008 Visual Studio Team System 2008 Team Foundation Server の組み合わせは、非常に良い構成管理を行う事が出来ると思います。 僕が、これらの製品が非常に良い…