タグ

Programmingとschemeに関するjjzakのブックマーク (163)

  • はてなようせいとまなぶ Schemeの形式的意味論

    わからない…… わからない…… R6RSのAppendix Aに載っている形式的意味論がわからない…… Schemeの形式的意味論を理解するための冒険は、 R6RSを印刷して読みながら、実際にPrologとかで、 意味論にそったインタプリタを作ることよ わからない…… そんな面倒なことをする意味があるのかわからない…… 当にそれで理解できたのかは筆者もわからない…… それじゃあ、簡単に説明をするからよく聞いてね。 けど、それでもR6RSを印刷したほうがいいわ。 それから、R6RSは「みんなもってる」ものなので、 自分のものだと分かるように、ちゃんと名前を書かないとだめよ。 「おなまえシール」を貼るというのも手ね。 もくじ なにをするの おおざっぱに もうすこしせいかくに きほん かきかえ むずかしいかきかえ ぶんぽう やくそくときほん ぷろぐらむのぶんぽう ぶんみゃくとあな ぶんみゃくの

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • コンビネータメモ - ボクノス

    メモメモ。 Z Yをη変換するとZ Y f = f (Y f) Z f = f (λy.Z f y)η変換ってなんだかよくわからんけど、λを一個追加(削除?)することらしい。 とりあえずη変換してみよう。 (lambda (x) x) ; ↓ η変換 (lambda (y) ((lambda (x) x) y)) 一回lambdaで囲んでも意味は変わらない。 η変換すると、理論上での計算の意味合いは全く一緒だけど、計算機上では評価順序が変わるのがポイントらしい。 不動点オペレータ - ボクノスコレネ。 これが純粋なYコンビネータ。 Y = λf.(λx.f (x x)) (λx.f (x x))外側は意味が無いので、一番内側の(x x)をaでη変換すると、(λa.(x x) a)。 代入する。 Z = λf.(λx.f (λa.(x x) a)) (λx.f (λa.(x x) a))おぉ

    コンビネータメモ - ボクノス
  • QScheme

    The brand new QScheme version 0.5.1 is available. Look at news for more informations or jump to the download section. QScheme is a fast and small implementation of Scheme written in C. QScheme is easy to interface and should be easy to use as an extension language. QScheme currently supports foreign function call and dynamic library. A perl like regular expression module is provided as example. QS

  • アルゴリズムとデータ構造演習

    演習の目的は、プログラミング言語C及びSchemeの基礎を習得し、 それらの言語を通じて、講義「アルゴリズムとデータ構造」の理解を深めることにあります。 重要なお知らせ 特に重要な連絡事項はここに掲載されます。 課題について 課題には、A課題とB課題があります。(課題番号の末尾が種類を表します。) B課題が基礎的な課題で、A課題が発展的な課題となっています。 B課題を全問解くことが、単位取得の目安です。 C入門第1回(10月10日) C入門第2回(10月17日) C入門第3回(10月24日) C入門第4回(10月31日) C第1回(11月7日) C第2回(11月14日) C第3回(11月21日) C第4回(11月28日) C第5回(12月5日) Scheme第1回(12月12日) Scheme第2回(12月19日) Scheme第3回(1月9日) Scheme第4回(1月16日) C補講

  • 新千葉 ガーベージ・コレクション

    uplatex をつかっていて ! Missing $ inserted のエラー。 このエラーは数式モードで $ が足りないというエラーらしいが、maketitle で出ていて、 そもそも $ つかってない。がよくみると _ をつかっていた。 \newcommand{\thetitle}{04_USB} \title { \thetitle } \pagestyle{empty} \maketitle ということで、04_USB を 04 USBと空白に変えるとエラーではなくなった。 色んな人が引っかかっているみたいだぞ。 引っかかってここに来て、これで解決した人は、自分のブログに同じことを書くか、 X.com でつぶやくかして、情報を共有しましょう。 エラーの詳しい内容は次。 (_build/04_USB.aux) *geometry* detected driver: dvipdfm

    新千葉 ガーベージ・コレクション
  • スクリプト言語の比較

    スクリプト言語の比較 *1 *2 *3 *4 *5 *6 *7 コメント 行の継続 定数 未代入の変数へのアクセス 変数の展開 入出力 出力 フォーマット出力 出力先変更 標準入力 __END__ 演算 +1 整数/整数 負数の除算 文字列 真と偽 多重代入 多岐分岐 関数 関数 関数引き数 関数引数に対する副作用 関数のデフォルト引数の値の評価タイミング 関数のデフォルト引数にコンテナ型を使用した場合の振舞 関数戻り値 関数の再帰 関数の別名 関数定義内関数定義 関数の引数の順番 関数にファイルハンドルを渡す オブジェクト指向 クラスの定義 インスタンスメソッドの定義 メソッドのクラス内での利用 インスタンスメソッドの可視性 インスタンスメソッドの追加 インスタンス変数 インスタンス変数の可視性 インスタンス変数の追加 クラス変数 クラスの継承 多重継承 スーパクラスのメソッド呼び出し

  • 再帰的な無名関数 - ヒビノキロク

    次の関数は再帰的な関数だ。 (define fact (lambda (n) (if (= n 0) 1 (* n (fact (- n 1)))))) この関数は内部で自分自身を呼び出しているので、普通の方法では無名関数として定義できない。 こういう場合、不動点オペレータというものを使うと以下のようにしてfactを定義することができる。(fact関数の中で直接factという名前を使っていない所がポイント) (define fact (let ((Y (lambda (F) ((lambda (s) (F (lambda (x) ((s s) x)))) (lambda (s) (F (lambda (x) ((s s) x)))))))) (Y (lambda (f) (lambda (n) (if (= n 0) 1 (* n (f (- n 1))))))))) ここで天下り的に出て

    再帰的な無名関数 - ヒビノキロク
    jjzak
    jjzak 2008/01/03
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • Reading Gauche - Mona OS developers Wiki

    列挙体名がない列挙体変数は Reading Gauche/gauche/vm.h/SCM_ERROR_BEING_HANDLED のような書き方でいいでしょうか。 -- ココサブ 2007-09-27 (木) 23:26:32 はい。良いと思います。#define と同じような扱いですね。 -- ひげぽん 2007-09-28 (金) 00:43:20 週末に合宿に出ていた間の分のcatch-up中です。struct HogeHogeRef は HogeHoge のページに記載、という風になってきたようなので従います。その方が手繰りやすいですし。既にポストされたstruct関連ページのリンクや内容も適宜修正します。 -- naoya_t 2007-09-25 (火) 14:46:08 ReadingGaucheの階層構造でsrcを省略してしまっていたために、srcと同じ階層になるgcなどの

  • C言語でScheme風オレオレ言語 - ボクノス

    なんかオレオレ言語が流行ってるみたいなので、参加してみる。 #include <stdio.h> #include <stdlib.h> #define define(ret, name, args, block) \ ret name args { return block; } #define if(expr, block1, block2) expr ? block1 : block2 #define eq(a, b) a == b #define sub(a, b) a - b #define scale(a, b) a * b define(int, fact, (int n), if(eq(n, 0), 1, scale(n, fact(sub(n, 1))))) define(int, main, (void), (printf("%d", fact(10)), EXIT_S

    C言語でScheme風オレオレ言語 - ボクノス
  • 不動点演算子ふたたび - sumiiの日記

    (追記:Yコンビネータって何に使うの?) Yコンビネータ(Curryの不動点演算子)を説明するのがプチブーム(死語)らしいので、ふたたび挑戦。 まず、ふつーに再帰関数factをSchemeで定義してみる。 (define fact (lambda (n) (if (= n 0) 1 (* n (fact (- n 1))))))この定義は、右辺にfact自身が出現するので、再帰的定義なのであった。ここから右辺にfactが出現しないようにするのが目標。とりあえず、factを関数の引数として外から受け取るようにしてみる。 (define make-fact (lambda (my-fact) (lambda (n) (if (= n 0) 1 (* n (my-fact (- n 1)))))))これは( (make-fact fact) 10)みたく使えるが、make-factを呼び出す際に

    不動点演算子ふたたび - sumiiの日記
  • Y-Combinator

  • Gauche でテスト作成支援 gca.el - ひげぽん OSとか作っちゃうかMona-

    昨日、「test* に与えるテスト名の命名が面倒だ」と書いた所、naotoさんから gca.el という koguroさん作の Emacs Lisp を教えていただきました。 これは便利。 gca.el テストケース作成支援のためのツールを作りました(拙作のEmacs用のユーティリティに含めてあります gca-20060903.tar.gz)。 単体テストをきちんと書くのは面倒ですが、通常コードを書くときは、無意識のうちにgosh上で動作確認をしつつコードを書き進めているかと思います。この動作確認の結果を基に単体テストを作成してしまおうというのがこのツールです。 デモ 実際に動作しているデモムービーを見るとわかりやすいです。(GaucheFest:koguroにあります) デモムービー(mov形式) 4.8MB デモムービー(wmv形式) 2.4MB インストール gca.el の先頭に書

    Gauche でテスト作成支援 gca.el - ひげぽん OSとか作っちゃうかMona-
  • ボクノス

    お久しぶりです。最近はイラレの人やってます。 SSDを買ってFedora27をクリーンインストールしたので、インストールメモを残していこうと思います。 ※ 雑多すぎるのでそのうち分割する Hello Fedora27 https://spins.fedoraproject.org/ から、KDE版のFedoraをダウンロードして、焼いときます。 リブートしたら、フリーダムな世界へ行きましょう。 SSDの容量が少ないので、/homeと/のパーテーションを一緒にしてみた。 化石の知識 何もかもが新鮮だ。 知識をアップデートしないと色々ヤバい気がしたので、たまにはブログでも書こうと思った。はてな記法忘れたし。 とりあえずよろしくお願いします。 DNF Fedora22から、パッケージシステムがDNF(Dandified Yum)に変更されたらしい(情報遅すぎるだろ)。 Fedoraらしい略語です

    ボクノス
    jjzak
    jjzak 2007/10/17
    OS自作,schemeの自作
  • Forth Parser in Scheme

    Back to Main Links to Forth Parser Evaluator Stack stuff (define-record varref (name)) (define-record lit (datum)) (define-record prim-proc (prim-op)) (define prim-op-names '(+ - / * add3)) (define dictionary '(DUP CR ?DUP dot DROP SWAP TEST OVER ROT !)) (define variable-names 'variable) (define udproc 'colon) ; Scheme reserves use of ";" so ; so : is written out in long hand. (define do-loop 'do)

  • Scheme:使いたい人のための継続入門

    使いたい人のための継続入門継続渡し形式call/ccは普通の関数call-with系関数call-with-procedurecall-with-continuation-procedurecall-with-current-continuation評価順序と継続call/ccパズルお手元マルチスレッド部分継続reset/pcとcall/pc環境破壊と部分継続部分継続の使用法PRINT-AND-NEXT-REPL議論質問お手元マルチスレッドのサンプルプログラムについて 使いたい人のための継続入門 とりあえず殴り書き。 くどかったり冗長な文章になってたり、重複してたり、間違ってたり、 おおいなる勘違いをしてたり、恥をカいてたりするかもしれないけどご愛敬。 藁をもつかみたい気持ちで継続を使えるようになりたい人は読んでみてください。 ただし所詮は藁です。(w 継続渡し形式 例によって階乗fact

    Scheme:使いたい人のための継続入門
  • ホワット・ア・ワンダフル・ワールド 新エディタ Shiki を作る日記 (17 + 30)

  • 継続

    継続、continuationと来ればやはりSchemeの話になるのだろうか。一般社会で schemeと言えば「すきーむ(n)計画。陰謀。」であるがソフトウェア業界で Schemeと言ったらLispの一種のことだ。Lispには変種が腐るほど存在するが、 Common Lispと並んで有名なのがSchemeである。Common Lispが標準化の課程でゴテ ゴテと装備して巨大化したのに対し、Schemeは遥かにコンパクトでクリアな仕 様を持つ。またSchemeとは言語の一般名であり、その実装にはGaucheとか scmとかguileとかMIT Schemeなどがある。 さてCall/CC、正式名称Call with Current Continuation、について 説明しよう。Call/CCはちょっと見はsetjmp/longjmpと同じように見えるのだが、 スタックが深くなる方向にもジャ

  • PayPal Casinoer uden om ROFUS » Bedste Guide til Online Gambling til danskere

    PayPal casino uden ROFUS: Komplet guide til sikker online gambling i Danmark PayPal er blevet en populær betalingsmetode på udenlandske online casinoer uden ROFUS. Dette skyldes den hurtige og sikre måde at overføre penge på, som mange danske spillere værdsætter. PayPal casinoer uden ROFUS tilbyder hurtige udbetalinger på 1-3 timer og accepterer spillere, der er registreret i ROFUS-registret. Når