ドイツ人数学者、Gottlob Frege氏から名付けられたFregeは、JVMのための純粋関数型の強力な型付き言語だ。FregeはHaskellと似ていて、「もっともHaskellらしいコードを修正せずに、または、見て分かる最小限の調整だけで動かせる。」 Fregeの開発者たちによると、Fregeは「パワー、単純さ、表現力の豊かさの組み合わせにおいて、類を見ないもの」である型システムをJVMに持ち込んだ。これにより、非正格 評価と型推論をサポートし、純粋性とデフォルトの不変性を可能にする。そのため、副作用は宣言された時のみ使うことができる。Fregeは、以下のようなHaskellの機能をほぼサポートしている。 ADTとパラメトリックポリモフィズムを用いた型クラス より高いランクの型 パターンマッチング リストの包含 do表記 ポイントフリースタイル モジュール functor、monoi
MicrosoftはF#を学習するための新しい専門サイトを始めた。Try F#は3つの主要なセクション- Learn, Create、Exploreに分かれている。 learn セクションでは、基礎、高度なテクニック、データの可視化、チャート作成、科学的な数値や財務計算、更にデータ科学に関係したトピックを調べる。 < create セクションは主に既にF#精通しているプログラムに向いている。F#のプログラムを作成し、コミュニティとそれを共通できる。 explore セクションは、本、チュートリアル、ビデオプレゼン、ポッドキャストへのリンクのような追加のリソースを提供している。終りの方に、Microsoftが広範囲にF#を扱っている様々なコミュニティサイトヘのリンクを提供している。 Microsoft Research Connections EMEAにおいてソリューションアーキテクトで技術
現在使っている処理系 Dr.Scheme 練習問題 1章の練習問題 2章の練習問題(前半) 2章の練習問題(後半) 3章の練習問題(前半) 3章の練習問題(後半) 4章の練習問題 iwkの.emacs MEMO 3.2 The Environment Model of Evaluation 3.5.3 Exploiting the Stream Paradigm 第五世代コンピュータの資産を掘り起こす 第五世代コンピュータプロジェクトを読み解く Schemeについて 抽象データ型(ADT)とオブジェクト指向プログラミング(手続きによるデータ抽象(PDA)) モンタギュー意味論入門 Constructive Mechanics エーコと百科辞典 型理論 FSharp 微分幾何学再入門 本棚 フレーゲ哲学の最新像文脈原理に関する一冊 読み取れた結論としては、”Peter Aczelの形式系FS
栄光のグラスゴーHaskellコンパイルシステム利用の手引き バージョン7.8.2 The GHC Team 目次 The Glasgow Haskell Compiler License 1. 参考訳 1. GHCの紹介 1.1. GHCを入手する 1.2. メタ情報: ウェブサイト、メーリングリストなど 1.3. GHCのバグを報告する 1.4. GHCのバージョン番号付け規則 1.5. Release notes for version 7.8.1 1.5.1. Highlights 1.5.2. Full details 1.5.2.1. Language 1.5.2.2. Compiler 1.5.2.3. GHCi 1.5.2.4. Template Haskell 1.5.2.5. Runtime system 1.5.2.6. Build system 1.5.3. Lib
SOLVING THE PUZZLE OF GLOBAL MARKETS Jane Street is a research-driven trading firm where curious people work together on deep problems Making markets stronger As a market maker and liquidity provider, we stand ready to buy and sell a wide range of assets at competitive prices, including equities, bonds, options, ETFs and commodities. We build bridges between supply and demand, across space and tim
状態をモナドで実現する方法を考えます。 リスト 例は簡単な方がいいので、データ構造として Lisp 風のリストを定義しましょう。 data List a = Nil | Cons a (List a) deriving Show リストは、こんな風に表せます。 Cons "c" (Cons "b" (Cons "a" Nil)) Lisp 風の cons も定義してみましょう。 cons :: a -> List a -> List a cons x xs = Cons x xs cons "c" $ cons "b" $ cons "a" Nil → Cons "c" (Cons "b" (Cons "a" Nil)) 状態を持つリスト さて、この Lisp 風のリストに、要素の数を覚えさせておきたいとしましょう。もちろん、数えれば分りますが、数えなくても一瞬で分るようにしたいのです。
木構造が与えられる。 := ( ...) という構造。 これから、子→親の対応を表す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
最近やたら叫んでいますが、Rは関数型言語です。ということはもちろん、無名関数ことλを使うことができます。だから二乗するようなことはこんな感じで書けます。 > (function(x){return(x^2)})(1:10) [1] 1 4 9 16 25 36 49 64 81 100 もちろんRは優等生なので > (1:10)^2 [1] 1 4 9 16 25 36 49 64 81 100 とか書けますが、とりあえずこれは忘れさることにします。 で、これまで困っていた事態として次のようなものがあった。例えば、標準正規乱数が100個入ってるオブジェクトxがあった時に0以上のものがいくつあるか数えたい。そんな時こんなことをやっていた。 > x <- rnorm(100) > x[x>0] [1] 1.04072273 0.49322122 0.42067606 1.15146069 0.
実行環境の sbcl から、Common Lisp の disassemble を実行すると、PPC の機械語が見れる。 CL-USER> (disassemble 'cons) ; 101FC550: .ENTRY CONS(SE1 SE2) ; (FUNCTION ; # *) ; 68: 3A7FFFD7 ADDI $CODE,$LIP,-41 ; 6C: 3A0F0020 ADDI $CSP,$CFP,32 (略) ; E8: 4E800020 BLR ; EC: 00000000 BYTE #X00, #X00, #X00, #X00 同様に、movitz-disassemble を実行すると、muerte (x86 上で動くCL runtime?)の関数の機械語が見れる。 CL-USER> (movitz::movitz-disassemble 'muerte::cons) ;
10:14 08/04/29 いろいろ 来月末 東京メトロ沿線ウォーキング のために、じゃなかった、友人の結婚式があるらしいので、ちょっと一瞬日本に戻ります。 いやまあ、メトロウォーキングには行きますが。 りふぁらにれす アニメ、というのが通説らしいですが個人的にはゲーム。 プログラミングと俺(続き) 前回 書き忘れた。中学校の"技術"の授業で LOGO でタートルグラフィックスとかもやりました。 使ってた処理系でどこまでできたのかは全く知らないのですが、まあひたすらお絵描きしてました。 つまりメガデモ製作です(違。いろんな図形を描くときそれに伴って動くタートルをいかに作品内に取り込むか など真剣に考えたりしてました。LOGO っていう言語についてはもう、「てじゅんは」っていうキーワードしか 覚えてないですね。タートルグラフィックスって、適当なコードを適当にパラメタ変えて色々走らせると す
晴天の価値 2月中旬に出張で千葉へ行った。5日間の滞在中はずっと快晴で、気温は20℃に迫る春のような暖かさだった。仕事は朝から晩まで現場を走り回る過酷なもので、身体的にも精神的にも追い込まれた。毎朝、京葉線から見える美しい景色を眺めて正気を保っていた。太平洋へ燦々と…
_ [ネット] Fの不動点 ラムダ式fを受けとったら、ラムダ式を返す次のようなプロシージャFを定義します。 (define F (lambda (f) (lambda (n) (if (= n 0) 1 (* n (f (- n 1))))))) とりあえず簡単な例で計算してみましょう。Fに常に5を返すラムダ式を渡して、返ってきたラムダ式に3を渡してみましょう。 ((F (lambda (n) 5)) 3) いくらになるでしょうか。 ;; => (* 3 (f (- 3 1))) => 15 15になりました。そして、次のようなプロシージャ fを考えます。 (define f (lambda (s) (F (lambda (x) ((s s) x))))) fはラムダ式を受けとるようなラムダ式sを受けとって、ラムダ式を生成した後、それをFに渡します。 さて、次のような単純なプロシージャhを
このページは、Lazy K公式サイトの翻訳です。 http://homepages.cwi.nl/~tromp/cl/lazy-k.html 基本的に超訳です。 訳の正しさは全く保証されません。 訳のおかしい部分は多数あります。 翻訳元サイトの許可を取ったりはしていません。 無認可です。 訳者による前書き / 訳語についてLazy K要約サンプルコード何故Lazy Kが必要とされるのかLazy KのI/OLazy Kの構文と動作Lazy Kの失脚Lazy KインタープリタLazy Kコンパイラサンプルコードバグと欠点訳者による感想 / 要約 / その他コメントその他 訳者による前書き / 訳語について この文書はとりあえず、Lisp(できればScheme)を理解してる人向け。 動作の説明例がlambdaで書いてあったり、Lazy KコンパイラでScheme処理系が必要になったりする為。 C
A Scala Tutorial for Java programmers Version 1.2 March 15, 2008 Michel Schinz, Philipp Haller, 宮本隆志 (和訳) Programming Methods Laboratory EPFL Switzerland 2 1 はじめに この文章は Scala 言語とそのコンパイラについて素早く入門するためのものです。あ る程度のプログラミング経験があり、Scala で何が出来るのかの概要が知りたい人を 対象にしています。オブジェクト指向プログラミングの基本知識(特に Java での) が前提とされています。 2 最初の例 最初の例として標準的な Hello world プログラムを用います。興味深いとはいえませ んが、Scala 言語に関する知識をさほど必要とせずに Scala のツールの使い方を簡
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く