タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

programmingとProgrammingとfunctionalに関するjjzakのブックマーク (208)

  • 最速インターフェース研究会 :: Haskell風にJavaScriptを書く

    ていうのをだいぶ前に作ったんだけど、コードがごちゃごちゃで何やってるか自分でもよくわかってなかったのでちょっと整理して公開。フィボナッチ数列を求めるのに大変便利です。 http://la.ma.la/misc/js/haskell/ 関数の定義を記述すると、再帰処理でごにょごにょやって求めてくれる関数を生成します。メモ化もします。色々いじってたらなんとなく出来た。あんまり細かいツッコミされても困る。 実際のところJavaScriptは再帰処理をたくさんさせるとすぐにスタックオーバーフローで止まってしまうので使い物になりません。数を大きくすると即死したりするので注意が必要です。タイマーを使って再帰処理させるとかトリッキーなことをすれば回避することもできるのだけれど面倒くさい。 遅延評価っぽくなっていて、 // 代入はできる test = ack(100,100); // アッカーマン関数(1

  • d.y.d. 再帰関数の意味とは不動点である!

    02:12 05/09/03 反応リンク集 fixの話 … Perl版、 Perl版、 C++版、 C++版、 Scheme版、 Concurrent Clean版。 (9/4追記: Ruby版、 Erlang版、 Squeak版、 D版。 Sukuna版。 Erlangのprocessを使ったメモ化の例は見てみたいかも。)。 で、 メモ化の話 … Python版、 Python版 (9/4追記: ET版、 Erlang版、 Java版、 PostScript版。 )。 decoratorは流石かっこいいですね。C++版は…うーん、個人的には、このくらいなら Boost に頼らないで直球ストレートで書いてあげたいところです。 彼はやればできる子なんです。 template<int (*G)(int(*)(int),int)> int fix(int x) { return G( fix<G

  • Haskell for C Programmers

    Haskell Tutorial for C Programmers - Introduction Written by Eric Etheridge last updated January 3, 2007 Table of Contents Each major section has its own page. Introduction Abstract Downloads Purpose and Other Online References Relationship to Our Other Tutorials Preface and Style Notes Section I: What the Heck is Going On? Part I: Haskell's Oddity Part II: Input and Output Part III: Very Bas

  • Haskell - HaskellWiki

    2025 July GHC LTS Releases announced May GHC 9.10.2 is released March GHC 9.6.7 is released GHC 9.12.2 is released January Darcs 2.18.5 is released 2024 December Stackage: LTS 23 release for ghc-9.8 and Nightly now on ghc-9.10 November GHC 9.12.1 is released October Darcs 2.18.4 is released (changelog) GHC 9.8.3 is released July GHC 9.6.6 is released May GHC 9.10.1 is released February GHC 9.8.2 i

  • 純粋関数型雑記帳

    TL;DR 簡潔で直感的に扱える、宣言的なRust向けのコマンドライン引数パーザーを作りました。 https://crates.io/crates/argopt モチベーション Rustにstructoptというライブラリがあります。これはコマンドライン引数をパーズするライブラリなんですが、僕はこのライブラリが大好きなんです。Rustのライブラリの中で一二を争うほど好きです。なんならコマンドラインツールをRustを書く理由の大部分がこのライブラリの存在といっても過言ではないかもしれません(過言ですけど)。 しかしstructoptも使い続けていると、どうにももっと便利にできるんじゃないのかと思う部分が出てきます。structoptでは名前の通りコマンドライン引数をstructで定義して、それに#[derive(StructOpt)] とStructOptをderiveすることでパーザーのコ

    純粋関数型雑記帳
  • OCaml.jp

    このページは最後に更新されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。 OCaml(オキャムル/オーキャムル)は、INRIA(フランス国立情報学自動制御研究所)で開発されている関数型言語の一種で、最新の言語理論の成果が取り入れられたプログラミング言語です。 型安全な静的型システムを基盤に、バグの少ない高信頼なプログラムが開発できます。 オブジェクト、型推論、代数的データ型、モジュールシステム、多相バリアント、第一級モジュール、GADTといった様々な機能を利用して、より簡潔で整理されたコードが記述できます。 x86, x86-64, ARM, PowerPCなど多数のアーキテクチャのネイティブコードを出力できるコンパイラを持っています。Android や iOS 向けのクロスコンパイルも可能です(Linux 上でのクロスコンパイルは opam-cross-a

  • Functional Programming

    あ、さて、LispやSchemeに嵌っている現状を少し。 関数型の言語はそれ自体で新たな自分だけの言語が作れる らしい。(ー>Macroのことです。)と聞きまして Lisp家Alegro最新版6.2Trialをダウンロードして使っております。 新日鉄ソフトが日のエージェントですが日語版はありません。 マニュアルはOnLisp,Successful Lispを読みながら、ポチポチ 試しております。 使った感じでは少なくともDelphi3.1頃のGUIコンポーネントは 揃っているようです。 何がLispの面白いところか? そのコードの異様さ、言語構造の特殊性です。 これまでPerlの暗号っぽいのは除き、勿論、桐の一括処理の 日語スクリプトを除き、ワタクシ、一貫してエレガンスをコードと 言語構造に求めて参りました。 それに反してLispってカッコだらけでなんとも…。 とわず嫌いでおりま

  • プログラム言語とその他のメモ。

    プログラミングそのものは、あまり好きではない。 当然、実用的な内容はない。 2005年4月以降どうなるか不明。 Lispの(S式以外の)特徴(未完成) Scheme、Common Lisp、Emacs Lispの比較(未完成) 内容のわりに長い。 自己出力プログラムと自己参照プログラム 計算できない問題・関数について 停止問題とかbusy beaver関数の事など。 Schemeでラムダ計算 不動点オペレータについて 再帰的定義に使うYオペレータとかの事。 継続の説明(前置き) 継続の使用法 Schemeでの継続の使用。 SchemeとActor理論 CPS(Continuation Passing Style)について 「SchemeとActor理論」と同じ内容なので、 どうするか考え中。 CPSで多値(とか) values、call-with-valuesがあるから、 無理してS

  • http://www.sci.toyama-u.ac.jp/~iwao/Scheme/scheme.html

  • A Slice of My Life - Practical Scheme

    このページでは、プログラミング言語Schemeの紹介、および 自作のSchemeのライブラリやアプリケーションの紹介をしてゆきます。 特に、ファイルをパーズしてテキストファイルを生成したりとか、 プロセスを監視したりとか、ちょっとしたGUIをでっちあげる と言った、職業プログラマとしてやってく上で避けて通れない雑用に便利な ライブラリが中心になる予定です。 SchemeはLisp系の言語で、見かけはLispに良く似ています。 Lispと聞いたら人工知能用言語だとか、もう古くさい言語だとか思われることも 多いんですが、CommonLispで書かれた実用的なアプリケーションはいろいろ ありますし、Schemeも拡張言語としてそれなりに使われています。 ただ、いかんせんマイナーな言語であることは間違いなく、メンテできる人が居ない とか他に分かる人が居ないという理由で採用が見送られることがあるのは

  • Scheme によるプログラミング入門

    内容 プログラミングについて体系的に学ぶとともに,実習を通して理解を深めます. プログラミング言語としては,文法が簡単で扱いやすいという理由で Scheme 言語を採用しています. 自宅のパソコンなどで、DrScheme を練習したい人 DrScheme は、 Dr. Scheme のWebページからダウンロードできます。 このWebページで、「Download DrScheme」をクリック、その後「Download」をクリック。 すると、Dr. SchemeダウンロードのWebページが現れるので「Download links」のところから、適切なリンクを選んでクリック。すると、ダウンロードが始まります。 この Web ページで公開している資料について 手作りの資料ですので, ミスが発見され次第,少しずつ手直しします.ご了承ください. Scheme 説明資料と演習問題 (参考) プログラ

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • 10. i クロージャとオブジェクト | Schemeへの道

    関数体の定義とそれを評価するための環境を合わせてクロージャと呼ぶ. クロージャの概念を用いれば,オブジェクト指向プログラミングの基要素であるオブジェクトを作成することができる. オブジェクトとは,簡単に言えば,メンバ変数(フィールド)といわれるデータとそれを操作するためのメンバ関数(メソッド)をまとめた部品のようなものである. 各フィールドのスコープはオブジェクト内に局所化され,それらにアクセスするためには必ずメソッドを用いることになる. つまりオブジェクト内部のデータは予め指定された方法でのみ操作され,プログラムの他の部分から予期せぬ形で影響を受けることがない. こうすることによって,オブジェクトの内部構造がブラックボックス化され,オブジェクトを,ある機能を提供するプログラムの抽象的な部品として,その詳細な実現方法に左右されることなく利用することができるようになる. ここでは環境モデ

  • Y Combinator - LoveRubyNet

    $Id: ycombinator.html,v 1.6 2002/06/27 23:37:39 aamine Exp $ [ruby-list:35058] に刺激を受けて Y combinator を解読してみた。 こんなもん読むくらいなら以下の参考ページを読んだほうがいい。 参考にした (というかほとんどそのままな) ページ (英語) http://www.ececs.uc.edu/~franco/C511/html/Scheme/ycomb.html 動機 再帰関数は再帰するときに自分自身を名前で呼ぶのが普通である。 これをなんとかして名前を使わず、関数そのものを呼ぶように させたい。 求めかた まず単純な fact (階乗) を以下に示す。言語は Scheme である。 (define fact (lambda (n) (if (zero? n) 1 (* n (fact (- n

  • approx-search.el

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • 『計算機プログラムの構造と解釈 第二版』解答集(未完) - Open Source WEB - SICP Answer Book

  • Parsec, 高速なコンビネータパーサ

    文書は次に掲げる URL で示される文書の部分的な邦訳です。 http://www.cs.uu.nl/people/daan/download/parsec/parsec.html Parsec, 高速なコンビネータパーサ Daan Leijen University of Utrecht Dept. of Computer Science PO.Box 80.089, 3508 TB Utrecht The Netherlands daan@cs.uu.nl, http://www.cs.uu.nl/~daan Parsec, 高速なコンビネータパーサ Daan Leijen University of Utrecht Dept. of Computer Science PO.Box 80.089, 3508 TB Utrecht The Netherlands daan@

  • OCaml備忘録

    的にlinuxベース。バージョンは大体3.07とか3.08ぐらい。よく分からない部分もとりあえず書いているので、多分間違い多数。徐々に追加とか修正とかする予定。今のところオブジェクトとモジュールのところの内容は空。 ツールの使い方 起動と終了の仕方 OCamlのインタプリタを起動させるにはシェルから次のように入力する。 [radio@taka radio]$ ocaml Objective Caml version 3.08.0 # 終了は # #quit;; と打ち込む。バイトコンパイルはシェルから [radio@taka radio]$ ocamlc hoge.ml -o hoge ネイティブコンパイルは [radio@taka radio]$ ocamlopt hoge.ml -o hoge とする。 また次のようにすると起動時にファイルを読み込むことができる [radio@ta

  • sumiiのブログ

    Twitterから参照するためのメモです) まずそもそも「関数」は「同じ形の計算を何度も書かないための仕組み」であることを十分に理解する(させる)。その上で、 sum(0) = 0 sum(1) = 0+1 sum(2) = 0+1+2 sum(3) = 0+1+2+3 sum(4) = 0+1+2+3+4 ...も「同じ計算を何度も書いている」から、 sum(0) = 0 sum(1) = sum(0)+1 sum(2) = sum(1)+2 sum(3) = sum(2)+3 sum(4) = sum(3)+4 ...と書き換える。これを一般化すると sum(0) = 0 sum(n) = sum(n-1)+n (n>0の場合)つまり sum(n) = if n=0 then 0 else sum(n-1)+nとなる 追記:n<0の場合は気にするな。 (高校で習うはずの)数学的帰納法

    sumiiのブログ
  • OBB vs AABB - Radium Software Development

    This domain may be for sale!