タグ

schemeに関するNeanのブックマーク (36)

  • JavaScriptにSchemeを実装する - Qiita

    この記事は完成していません 更にコードに誤りがあったりして修正されていなかったりするので、一度整理されるまで落とすかもしれません この記事の内容 プログラマが美しい言語を求めて最終的にたどり着く言語、LISP。 プログラミング言語を作るということは、難しいと思われがちですが、実際のところ読み取った文字列を解釈するプログラムを作成するだけで独自の言語を作ることができます。 ただし、プログラミング言語として利便性を実用レベルまで持っていくのは通常、容易ではありません。しかし、Schemeであれば比較的実装が簡単かつ高度な言語を作ることができます。 Schemeはシンプルさとパワフルさの両方を兼ね備えたLISP方言の言語であり、ミニマルな仕様から世界で最も実装される言語です。今回はそんなSchemeをJavaScriptに実装します! 最終的な目標は、ブラウザにCUIを表示して対話形式でSche

    JavaScriptにSchemeを実装する - Qiita
    Nean
    Nean 2018/01/15
    “この記事は完成していません”
  • JupyterでScheme処理系を動かしてSICPを勉強する | DevelopersIO

    はじめに 最近社内でSICPの勉強会を行っています。 SICPでは、教材としてLISP処理系の一つであるschemeを採用しており、勉強する時にはschemeを動かしながら例題の動作確認や課題を行っていきます。 Emacs + Gaucheを用いて学習を進めていくパターンが多い印象ですが、Emacsに慣れていない人にとっては、まずEmacsの操作を満足にできるようになるまでに高いハードルがあります。 今回は、Emacsの代わりにJupyterを用いてScheme処理系を動かし、その動作を確認する方法を紹介します。 Jupyterについて Jupyterとは、簡単にいってしまうとブラウザ上で動作するREPL環境 + メモ帳です。 以下の画面のように、コードをその場で実行し、その結果をその場で見ることができます。 また、コードの他にmarkdown形式で文章を追加することもできるので、コードと

    JupyterでScheme処理系を動かしてSICPを勉強する | DevelopersIO
  • http://vocrf.net/docs_ja/jsicp.pdf

    Nean
    Nean 2015/10/31
    ありがたやぁ。
  • 非公式PDF版SICP・新訳 - アスペ日記

    計算機プログラムの構造と解釈、通称SICPを一から翻訳し直しました。 ファイル: SICP非公式日語版 翻訳改訂版 リポジトリ: https://github.com/hiroshi-manabe/sicp-pdf また、今回の翻訳をするにあたって考えたことを別記事にまとめました。 腐った翻訳に対する態度について SICPはMITの有名なプログラミングの教科書です。詳しくはminghai氏の記事をご参照ください。 この翻訳改訂版は、minghai氏の非公式日語版(以降、minghai氏版)のあまりにも惨憺たる翻訳を見かねて、原著から翻訳をし直したものです。この翻訳を進めるにあたっては、minghai氏版の訳を置き換えていくというやり方で進めていきました。しかし、差分を取ればわかっていただけると思いますが、minghai氏版のテキストは痕跡をとどめていないはずです。この方式を採ったのは、

    非公式PDF版SICP・新訳 - アスペ日記
  • JavaScript と Scheme について - ksmakotoのhatenadiary

    清水さんの「これがプログラミングの神髄だ! ファイナルファンタジーのプログラマーが明かす秘密とLispトークバトル!」( http://d.hatena.ne.jp/shi3z/20140123/1390429115 )にある、 もともとJavaScriptはLispの方言であるschemeをベースとして開発されたわけだからね。 という記述に関して関連資料のメモ。 (ブレンダン・アイクさんのブログも参照のこと https://brendaneich.com/2008/04/popularity/ ) 『Coders at Work』(邦訳版) Coders at Work プログラミングの技をめぐる探求 作者: Peter Seibel,青木靖出版社/メーカー: オーム社発売日: 2011/05/25メディア: 単行(ソフトカバー)購入: 11人 クリック: 360回この商品を含むブログ

    JavaScript と Scheme について - ksmakotoのhatenadiary
  • 非公式PDF版SICPの全訳を公開しました - minghaiの日記

    また1年振りの更新となりかけました。 Andres Raba氏により2011年から開発が続けられている、非公式PDF版SICPを全訳しました。 ファイル 恒例のgithubです。 https://github.com/minghai/sicp-pdf jsicp.pdfが日語版の体です。 ejsicp.pdfはデバッグ用の日語・英語併記となります。 ライセンスはCC BY-NC-SA 3.0です。商業使用は認められないことにご注意下さい。 SICPとは何か? SICPとはMITが作成した何も知らない新入生向けのプログラミングの教科書です。 プログラミングと強調したことには理由があります。このは良くあるプログラミング言語の教科書ではなく、あくまでもプログラミングを勉強するための教科書だからです。このことはこのの中でも、最初の前書き、序文にて何度でも繰り返し強調されています。筆者達が

    Nean
    Nean 2014/04/21
    おぉ!
  • GIMP Script-Fu しきい値を自動化 | smokycat.info

    写真で撮った画像をスキャナで取り込んだようにGIMPで加工するっていうのをたまにする。 しきい値(threshold)を使って、黒っぽいところを真っ黒に、白っぽいところを真っ白にするのだ。 元画像 スキャナで取り込んだっぽくした画像 これを自動化する方法を会得したのでメモ。 1. Script Fu GIMPはschemeで書かれた描画ソフトだということはよく耳にする。LISPで書かれたプログラムとして他にはクラッシュバンディクーとかがあるらしい。いつかプレイしなければならん。 さて、schemeで書かれたプログラムなので、schemeの命令をうまいこと使えば、GUIを起動しなくても画像を処理することができる。これを Script Fu と呼ぶそうな。 実行は gimp -i -b <command> とコンソール上で打ち込む。今回<command>の部分には以下のコードをぶち込んだ

  • Island Life - プログラムの手入れ

    About 南の島のプログラマ。 たまに役者。 Practical Schemeの主。 WiLiKi:Shiro 最近のエントリ 無限cxr高校受験Defense振り返ってみると2019年は色々学んで楽...覚えるより忘れる方が難しい(こともある)眼鏡のつると3DプリンタIris Klein Acting ClassSAG-AFTRA conservatory: Voice Acting創作活動って自分を晒け出さねばならないと...ループを使わずに1から100までMore... 最近のコメント shiro on 歳を取ると時間が速く過ぎるのは、新しいことに挑戦しないから? (2023/03/14)1357 on 歳を取ると時間が速く過ぎるのは、新しいことに挑戦しないから? (2023/03/01)ベアトリーチェ on ハイポハイポハイポのシューリンガン (2022/04/02)ベアトリーチ

    Island Life - プログラムの手入れ
    Nean
    Nean 2013/01/27
    チャーミング。
  • Gauche開発支援拡張vim-gdev/emacs-gdev紹介 - aharisuのごみ箱

    VimEmacs上のそれぞれで動作するGauche開発支援の拡張スクリプトを開発しています。 開発に一区切りつけるためにこの辺で紹介記事としてまとめておきたいと思います。 なにはともあれ動作画面のスクリーンショットから。 このスクリプトではVimEmacsでほぼ同じことを実現しています。 インストール方法 VimEmacsそれぞれのインストール方法から紹介します。 まず、どちらにも共通していることですがGaucheの0.9.2以上が必要になります。 ・Vimにインストール Vimでは外部プロセスであるgoshと通信するためにvimprocが必須です。 また、補完候補を出すためのneocomplcacheと、検索インタフェースであるunite.vimが必要になります。 それぞれの必須スクリプトのインストール方法ですが、全てVimでは有名なスクリプトで検索すると解説ページが見つかると思う

    Gauche開発支援拡張vim-gdev/emacs-gdev紹介 - aharisuのごみ箱
  • よりSchemerフレンドリなJavaScriptへ

    Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation. For the best experience please use the latest Chrome, Safari or Firefox browser. '("Kyoto.lisp Tech Talk #1" . "@taiju") 免責 当スライドで使用するLispコードはGaucheにて評価可能です。また、一部でGauche独自のメソッドを利用している箇所もあります。 当スライドでは、JavaScriptとECMAScriptという名前を使っておりますが、厳密に使い分けているわけではありません。文脈によって、適当

  • JavaScriptでつくるSchemeインタプリタの基礎の基礎

    はじめに 現存するプログラミング言語の中で2番目に古いのがLispです。生まれは古くても、いまだに使われ続け、また、Rubyなどの新しい言語にも影響を与えています。そのLispの派生であり、シンプルさが売りなのがSchemeです。 ここではSchemeの簡単なインタプリタをJavaScriptで作ってみます。 対象読者 稿はLispやSchemeは少し触ったことはあるけど、インタプリタは書いたことがないという方を読者対象としています。また、JavaScriptの文法や、簡単なデータ構造についての知識を前提とし、説明は省きます。 必要な環境 テキストエディタと、JavaScriptが動くWebブラウザがあれば十分です。他に特に用意するものはありません。 概要 作成するインタプリタについて インタプリタのコードはJavaScriptで書き、HTMLのフォームを使って、Schemeのプログラム

    JavaScriptでつくるSchemeインタプリタの基礎の基礎
    Nean
    Nean 2011/02/08
    そのうち読む、かもしれない。
  • 『「Lisp脳」の謎に迫る』の舞台裏

    ドット対(1 . 2)は対であるがリストではない 空リストは対ではないがリストである 空でないリストは対でありかつリストである この事実から「リストはまた対である」を以下の通りに修正する必要があります。 空リストは対ではない 空でないリストは対である なぜ「配列」でなく対で並びを表現するのか? SchemeをはじめとするLisp言語では、なぜ「配列」でなく対で並びを表現するのでしょうか? 対で並びを表現すれば、いくらでも入れ子構造にすることができる 入れ子構造になった対は再帰的に処理することができる あらゆるデータ構造を(入れ子構造になった)対で表現できる 入れ子構造になった対でプログラムコードも表現できる これまで見てきたように、対はcons手続きでいくらでも入れ子構造にすることができます。また、入れ子構造になった対にcar、cdrを適用すればどんな要素も取り出すことができます。これは、

  • ちょっと変わったLisp入門 - @IT

    Lispの一種であるScheme。いくつかある処理系の中でも気軽にスクリプトを書けるGaucheでLispの世界を体験してみよう(編集部) 「Gaucheでメタプログラミング」と題して、これからGaucheを使ったプログラミングの連載を書かせていただきます吉田裕美です。よろしくお願いいたします。 Gaucheとは 今回の連載で取り上げるGaucheはハワイ在住の日ハッカー、川合史朗さんが作った、Lispの一種であるSchemeのオープンソース処理系です。 Gaucheの特徴は、PerlRubyのように気軽に使える軽い処理系だということです。Perl同様に正規表現や文字列操作が行え、ちょっとしたツールの作成にも使えます。しかし、非常に強力なCommon Lisp風オブジェクトシステムを持ち、Lispならではのマクロに加え、Webやグラフィックスなどの豊富なライブラリも持っているので実用

    ちょっと変わったLisp入門 - @IT
    Nean
    Nean 2009/11/19
    しかし、ここでもLogoへの言及はない。
  • 拡張言語向けライブラリ「Guile」、Schemeに加えJavaScriptに対応 | OSDN Magazine

    GNU Projectの拡張言語向けライブラリプロジェクト、「Guile」の開発チームは6月19日、「GNU Guile 1.9」アルファ版をリリースした。ECMAScript対応が最大の特徴。プロジェクトのWebサイトからソースコードを入手できる。 Guileは拡張言語向けライブラリプロジェクトで、プログラマはプラグインやモジュールを開発できる。プログラミング言語Schmeのインタープリタおよびライブラリとして開発された。1.9は、将来Guile 2.0としてリリースされるバージョン系。 最新版では、初めてSchme以外の言語としてECMAScriptをサポートする。これにより、開発者はSchmeのほか、JavaScriptを使ってもアプリケーションを拡張できる。Guileでは、将来的にECMASrcipt 3.1の全ライブラリをサポートする予定だが、まだ不完全だという。 このほか、マル

    拡張言語向けライブラリ「Guile」、Schemeに加えJavaScriptに対応 | OSDN Magazine
    Nean
    Nean 2009/06/23
    そりゃまた思い切ったことを。
  • OOエンジニアの輪! 〜 第 21 回 川合史朗 さんの巻 〜

    Hope is a good thing, maybe the best of things, and no good thing ever dies. (希望は良いもの、おそらく最上のものだ。そして、良いものは決して消えない。:『ショーシャンクの空に』より) 高林さんとのつながり -- 今回は、高林さんからのご紹介ですが、どういったつながりですか? 実は、直接お会いしたことは一度もないんです。一番最初はですね、Paul Graham の『Beating the Averages』 っていうのを、私が翻訳(邦題『普通のやつらの上を行け』)させて頂きまして、それの感想をメールで頂いたのがきっかけです。それから、私が開発している Scheme 処理系(Gauche)を使って頂いています。 -- 川合さんにとって翻訳って、あれは自分で読んで面白いものをみんなに見てもらう、っていうところですか?

    OOエンジニアの輪! 〜 第 21 回 川合史朗 さんの巻 〜
  • Ypsilon Scheme System - リトルウイングピンボール オフィシャルサイト

    Ypsilon Scheme System(イプシロン・スキーム・システム)はプログラミング言語Schemeの最新規格R6RS*に準拠する実装です。インタープリタの特性を活かしてスピーディーでインタラクティブなアプリケーション/ユーザーライブラリーの開発を可能にします。またマルチコアCPU用に最適化したMostly Concurrent Garbage Collectionを実装することにより、極めて短いGC停止時間と並列実行によるパフォーマンスの向上を達成しています。 News: 2008-12-23 Ypsilon 0.9.6-update3をリリースしました。 R6RS: http://www.r6rs.org/ Ypsilon開発の背景: http://www.LittleWingPinball.com/contents/ja/ypsilon.html ライセンス Ypsilon

    Nean
    Nean 2008/07/18
  • パコパコママ期間限定スペシャルー無料お試し開始!

    Nean
    Nean 2008/03/22
  • Karetta|Gaucheプログラミング(立読み版)

    はじめに書の構成 (1)書の対象読者書の表記書の使い方執筆時点でのGaucheバージョン謝辞第1部: 思想LispとScheme (4)Gaucheの特徴 (1)すべて式であるすべてリストである (1)lambdaは空気のような存在である (2)プログラミングとは名前付け(bind)であるすべて再帰である (2) (2)Schemeのすごい点 (4)すべてオブジェクトである (もしそれがお望みなら)Gaucheの設計思想や誕生の背景Schemeの評価モデルとは? (3)「Lisp脳」の謎に迫る - Schemeプログラマの発想第2部: 実用Schemeスクリプトを書こうSchemeスクリプトを書く (1)コマンドライン引数の値を得るユニットテストを書く (1)CGIを書こうSchemeスクリプトをCGIとして実行するwww.cgiライブラリを利用する (1)手軽にHTMLを生成する

  • 最もタメになる「初心者用言語」はScheme! - 日記を書く [・w・] はやみずさん

    最もタメになる「初心者用言語」は Python! - 西尾泰和のはてなダイアリー Schemeなら、えんざんしとかえんざんしのゆうせんじゅんいとかいんでんととか小難しくてよくわらないものがないから、初心者でも安心して簡単にできるよ > < しかもしかも、ループと再帰呼び出しとか2つもいっぺんに覚えなくても、末尾呼出し1つだけ覚えれば両方できちゃうよ!Schemeすごい! Schemeで豊かな表現力を身につける なんだかよくわからないけど、巷のプログラミング言語は * とか - とか ? が変数名とか関数名につかえない。演算子?なにそれ初心者には難しくてわかんない>< Schemeだったら、「それってシンボル?」って聞く関数は symbol? っていう名前にできるよ。 is_symbolとかわかりにくいよね!!!アンダーバーとかタイプしにくくて初心者向けじゃないし!!! 参照透明できれいな心

    最もタメになる「初心者用言語」はScheme! - 日記を書く [・w・] はやみずさん
    Nean
    Nean 2008/02/04
    EmacsLispとかいい出す人はいないかなぁ。いないんだろうなぁ。
  • アルゴリズムとデータ構造演習

    演習の目的は、プログラミング言語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補講