タグ

Lispに関するatm_09_tdのブックマーク (38)

  • evalのススメ - Qiita

    この記事は Lisp Advent Calendar 2017 の 17 日目の記事です。 eval は強力ではあるものの、その強力さ故に現代的な Lisp ではあまり使われない。 Lisp 以外の eval のある言語、例えば JavaScript ではその存在はほとんど忘れられているような気がするし、 Ruby でも instance_eval や class_eval といった表現力を弱めた変種が使われることはあれど、素の eval が使われることはほとんどないように思う。 Lisp の場合でも、普通は eval を使わずに簡単な DSL を作って自分でインタプリタを書いてしまうことが多いのだけど、 DSL が複雑になってくると少し面倒さを感じないでもない。 そんなときに R7RS Scheme の eval がちょうどうまく使える例があったので紹介したい。 R7RS Scheme

    evalのススメ - Qiita
  • Building GUI App with Electron and Lisp

    This document discusses how an electronics payment company called Pocket Change built their GUI application using Common Lisp instead of JavaScript. They used the Electron framework, which normally uses JavaScript, but modified it to use Common Lisp instead. They spawned a Common Lisp process that communicates bidirectionally with the Electron processes using JSON-RPC over WebSockets. This allows

    Building GUI App with Electron and Lisp
  • Lispの悟りが分かっちゃう新春ポエム - Qiita

    こんにちは、悟っちゃったLisperです。 皆さんにLispの悟りとは何かを悟らせたいと悟ったので、今回はLispの悟りを解説したいと思います。 まず、Lispの悟りが良く口にされるようになったのは、エリック・レイモンド氏が無責任に適当なことを書いたからです。 ハッカーになろう (How To Become A Hacker) LISP は、それをモノにしたときのすばらしい悟り体験のために勉強しましょう。 この体験は、その後の人生でよりよいプログラマーとなる手助けとなるはずです。 たとえ、実際には LISP そのものをあまり使わなくても。 彼の言う悟りが結局なんのことなのかは不明ですが、悟りですので、理解できなくても良いのです。 ちなみに、今回述べることは、レイモンド氏の主張とも矛盾しないものです。 TL;TR Lispの悟りを感覚として理解するのは非常に簡単です。 貴方は、データ処理を頼

    Lispの悟りが分かっちゃう新春ポエム - Qiita
  • Lispから可変長引数を引き算したらできること - 標高+1m

    Schemeから可変長引数を引き算したら -- Island Life Shiroさんが面白い記事書かれてたので、前に実際に可変長引数をなくしたLispを作って発見したことを紹介します。*1 実装者とは全く別の、遊ぶ人の視点からの記事です。 この記事では意図的にマクロを一切使わないという制約のもと、いわばラムダ計算パズルをします。 左結合のカッコを省略する 少々恣意的ですが、 ((compose f g) x) ;;こう書ける (compose f g x) こういうこと、引数の数が固定なのでカッコを省略しても一意に評価できます。関数を返す高階関数を使うときに便利。以下の例では全てこの仕組みを存分に活用します。 list関数もクオートも使わずにリストを作る Shiroさんの記事で言及されていたように、可変長引数がないと (list 1 2 3 4) ができなくて不便です。これも一工夫でうま

    Lispから可変長引数を引き算したらできること - 標高+1m
  • Lisperはプログラムに何を見るか - 八発白中

    男子校に通う中学生の僕らにとって「家庭科」の授業は休憩時間のようなものだった。 僕の中学校には家庭科室というものがない。だから、いつもの教室で野菜の種類やそれに含まれる栄養素なんかを教わるというだけの、正直退屈な授業だった。話される内容はどれもただ暗記すればいいものなので、授業を聴かなくても定期試験前に教科書を読み通すだけで九〇点は取れる教科だった。 学校としても文科省の教育課程に沿うがためだけに時間割にねじ込んでいるに過ぎなかったと思う。特別教室がないことでも真面目にこの教科を取り扱う気がないことがわかるし、生徒の方でもその学校の態度を敏感に感じとっていた。 そんなやる気のない男子学生の前に立って話すのは教師にとって楽しいものではなかっただろう。僕らの先生は、落ち着いた雰囲気でどこかしたたかさのある、髪の長い女の先生だった。 その日も彼女はいつも通り、キノコに含まれる何々という栄養素が、

    Lisperはプログラムに何を見るか - 八発白中
  • なぜLispなのか?― “データ” と “コード” | POSTD

    たくさんの人から 私が昨日Hacker Newsに書いたコメント についてもっと詳しく説明してほしいというメッセージをいただきました。例えば以下のような質問です。 Lispは単なる表記法の1つにすぎないと私は考えますが、間違っているでしょうか? Lispのコードをデータ構造にマッチさせるのがなぜそんなに重要なことなのか理解できません。(おそらく、そのマッチさせるという行為がなぜLispを使うのかという答えになるのだとは思いますが。)私はマクロの大事な何かを見落としているでしょうか?  何か私が気付いていないことがあるでしょうか? この質問に答えるには少し長くなりそうだったので、ブログに投稿することにしました。以下が私の答えです。 手短に言えば、Lispは 単なる 表記法の1つではなく、プログラミングとは 何か という考え方を根的に覆すものなのです。プログラミングに関する主流な考え方は、「

    なぜLispなのか?― “データ” と “コード” | POSTD
  • Lispのカッコは怖くないよ - knjnameのブログ

    最近Lispの連れション仲間を増やしたいので、いろんな初見の人に「Lispって知ってる?」と質問して回っています。 そこそこアンテナのある技術者ならLispというのがプログラミング言語の一派を意味しており、それが主に大量のカッコで構成されていることは知っているようなのですが、なんか拒否反応が多いんですよね。 拒否反応というのが、まあ、だいたい 「カッコが多すぎて気がおかしくなる」 「私の人生は大量のカッコに対応するには短すぎる」 「大学でやったけどカッコ死ね。」 みたいなHTML初心者がタグのネストに敗北したみたいな感想ですね…。 まあ、パッと見てそういいたくなる気持ちは分かるんですが、それ自体がよくあるLispに対する誤解と言わざるを得ないです。 事実、Lispプログラミングは大量のカッコを相手にするのですが、誰もカッコの個数なんて見ていません。 Lispのプログラムの構造を読むときは、

    Lispのカッコは怖くないよ - knjnameのブログ
  • リリカル☆Lisp開発日記 » Blog Archive » ScratchでLisp作った

    突然ですが問題です。この画像は何でしょうか。 答え: Lispインタプリタのソースコード 「なんちゅうソースコードだ」と思った方はぜひこちらからお試しください。 「中を見る (See inside)」を押すことでソースコードが読め、その場で書き換えることも出来ます。 — というわけでScratchでLispインタプリタを作りました。ScratchとはSmalltalkを元に作られたSqueak、を元に作られた教育用のプログラミング言語/開発環境だそうです。キーボートで文字を打ち込むのではなく、マウスでブロックを並べることによってプログラムを作ります。子供でも簡単にプログラムを作成することができるらしいので、つまり子供でも簡単にLispインタプリタが作成できるということですね。 一見、非常に低機能な言語のように見えますが、一通りの機能は揃っているので、足らない部分は努力で補えます。 ビット演

  • http://www.designzum.com/2014/03/04/best-online-lisp-books/

  • あなたがLispを無視することができない理由 - 八発白中

    (この記事はLisp Advent Calendar 1日目のためのエントリです。) 禅が好んで用いる比喩がある。月を指すには指が必要である。だが、その指を月と思う者はわざわいなるかな。 — 鈴木大拙「禅」 これをLispに例えるなら、こう言うことができるかもしれない。 Lispを書くには括弧が必要である。だが、その括弧をLispと思う者はわざわいなるかな。 Lispを普段書いている身としてはLispについて括弧がどう、というのは些細なものに思えるが、Lispを知らない人からすると自然な考えだろう。人間は知らないものを理解しようとするとき、自分が今まで見たもの、知っているものと比較して手がかりを得ようとする。Lispが他のプログラム言語と比較してユニークなものは、やはりその括弧で表現されたS式だ。 しかし、Lispが括弧を使った奇妙な構文を用いるのは理由がある。そしてそれがLispの強力さ

  • Web系女子がLispと出会って統計学に目覚めるまでのお話 - あんちべ!

    こんにちは!今年の春からWeb系企業でHTML/CSSデザイナーとして働きだしたキラキラ女子(を目指してる)のあんちべ(23)です!よろしくお願いします!私は普段自社のWebサービスCSSなどを書いている*1のですが、最近データマイニングに興味を持ち始め、データを分析して、自社サービスの売り上げ改善に貢献したいなーと思うようになりました!でも。。。私は文系出身で統計学とか全然わからない*2し、プログラミングも得意じゃない*3し、高価な統計解析ソフトを買うのも辛いです。。。無い無い尽くしですね><;!そんな私に救いの手が!インストール作業不要で、便利な統計処理機能が色々あって、しかも無料という素晴らしいソフト*4を発見しました!その名も"Incanter"です!なんでも、 Lispっていう古くから使われてきた実績のあるプログラミング言語で動いてて、Lispの文法でどんな処理をすればよいかを

    Web系女子がLispと出会って統計学に目覚めるまでのお話 - あんちべ!
  • Island Life - Lispでメモリに直接触る

    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 - Lispでメモリに直接触る
  • LISP on browser — Learn Languages 1.0 documentation

    LISP on browser¶ This is small implementation of LISP, which written in JavaScript and run on browsers. I think it helps you to understand what going on in programming languages by using it and reading its source codes. ;; A few examples. Click 'Load source' to load them. ; Closures (let (count 0) (define (counter) (set! count (+ 1 count)))) ; You can also define variables (define x 2) (set! x 3)

  • Common Lispでシェルを便利に!「Shelly」をリリースしました - 八発白中

    先日のKyoto.lisp Tech Talkでご紹介しましたが、「Shelly」というプロダクトを作りました。 Shelly View more presentations from fukamachi まとめると、ShellyはCommon Lispの関数をシェルコマンドのように実行できるユーティリティです。 インストールは以下のコマンドを実行してください。「LISP_IMPL=ccl」の部分は使っている処理系に合わせて変更してください。LISP_IMPL=sbclとか。 $ curl -L http://xrl.us/shly | LISP_IMPL=ccl perl - installもしくはREPLからShellyをロードしてください。 (ql:quickload :shelly) (shelly:install) インストールが成功すると ~/.shelly にファイルがコピー

    Common Lispでシェルを便利に!「Shelly」をリリースしました - 八発白中
  • [Emacs]既存の関数をちょこっと拡張して自作関数を作る方法 · DQNEO日記

    既存の関数の挙動を調べる まずは敵を知れ。 revert-bufferについて調べてみましょう。 関数の説明を見るのはdescribe-functionコマンドです。 (お使いの環境によって、キーバインド"F1-f" や" C-h f" などに割り当てられているかもしれません。) M-x describe-function Describe function:revert-buffer 関数名を聞かれるので、"revert-buffer"と入力しましょう。 関数の説明が出てきます。 It is bound to <menu-bar> <file> <revert-buffer>. (revert-buffer &optional IGNORE-AUTO NOCONFIRM PRESERVE-MODES) ごちゃごちゃと書いてますが、"NOCONFIRM"というのが、何かそれっぽいですね。

    [Emacs]既存の関数をちょこっと拡張して自作関数を作る方法 · DQNEO日記
  • Common LispのWebアプリケーションを社内運用してみた - 八発白中

    今月の初めに弊社はてなで開発合宿を行いました。2泊3日の合宿の中でチームを組み、テーマを決めて開発をし、最後に各チームがプレゼンをする、というものです。成果物は今後のサービス開発に生かされます。 僕のチームはバックエンドがCommon Lisp、フロントエンドがCoffeeScriptで、お互いが独立していてAPIでのみ通信する設計のWebアプリケーションを作りました。僕とhitode909とswimy1113の3人の最小チームでしたが、最後のプレゼン投票で優勝できました。 ↓ 優勝したときの図。 東北で開発合宿を実施しました - はてな広報ブログ 左の灰色のはてなパーカーを着てるのが僕です。 Common Lispで書かれたアプリケーションが社内1位ってのはかなり夢があります。 合宿が終わってからも継続して開発を続けており、そろそろ数週間が経ちました。ので、この辺りでCommon Lis

    Common LispのWebアプリケーションを社内運用してみた - 八発白中
  • On Lisp

    Paul Graham氏の著書On Lispの邦訳を無償で公開しています.Common Lispのマクロに関する貴重な情報がいっぱいです.

  • これなら開発しているように見えるはず!なxyzzy向けTwitterクライアント·xyttr MOONGIFT

    xyttrはxyzzy用のTwitterクライアントです。 Emacsはテキストエディタではなく環境であるという言います。メールもフィードの購読も何でもできてしまう、そんなソフトウェアです。EmacsをWindowsに特化させたソフトウェアとして有名なxyzzy、そんなxyzzyをTwitterクライアントにしてしまうのがxyttrです。 インストールするLispは幾つかありますが、最終的にはxyttrを実行して起動します。個人的にはWebブラウザ経由の認証がうまくいかなかったので、OAuthの設定をTwitterから取ってきて使いました。 もちろん検索も可能。/またはsで検索です。日語も使えます。 RTもできます。ツイート上でrtと打てば良いだけです。その他お気に入りはf、削除はD、引用ツイート(ru)、引用して返信(rr)、返信(`)、言及(@)があります。通常のツイートはuです。

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

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

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • 第5回 SLIMEの使い方 開発サイクルについて

    前々回の「基礎編」 ではSLIMEのインストール方法とその基的な使い方について説明しましたが、 具体的にどのように開発したら良いか分からないと思います。今回はその補足 としてSLIMEにおける開発サイクルについて説明します。 SLIMEにおける開発サイクル SLIMEにおける開発サイクルは基的には次のようになります。 M-x slimeでSLIMEを起動lispファイルを編集REPLバッファで動作確認2に戻る 一般的な開発サイクルには「コンパイル」とか「アプリケーションの再起動」 というタスクがありますが、SLIMEの開発サイクルにはそれがありません。その 代わりSLIMEには、アプリケーションへの変更を即座に反映させる仕組みがあり ます。これにより、待ち時間を極力短縮して、またエディタとターミナルを行 き来することなく、効率的に(また気持ち良く)開発することが可能になりま す。この、