タグ

Lispに関するNyohoのブックマーク (29)

  • 美しすぎる。神の言語といわれるLISPは、数学のように純粋で美しいロジックが展開できる言語。オシャレな LISP インタプリタ。 - Qiita

    記事は、技術的な視点から情報を提供することを目的としております。内容については可能な限り正確性を期しておりますが、記事内の見解は執筆者の意見や理解に基づいており、すべての方にとって普遍的な結論を示すものではありません。技術の分野は常に進化し、新たな知見が追加されることもあります。ご意見がある場合には、建設的な対話を歓迎いたしますが、批判的な意見を展開する際も、お互いの尊重を大切にしたコミュニケーションを心がけていただけると幸いです。」 タイトル: 「東京プログラマー リスプを書かずにはいられない物語」 新宿の夜景を見下ろすカフェで、主人公の大輔は、ノートパソコンに向かって静かにキーボードを叩いていた。彼は東京で働くプログラマー。コードの世界に浸り、特に最近夢中になっているのが関数型言語LISPだった。 LISPは、数学のように純粋で美しいロジックが展開できる言語。大輔は「この関数型の世

    美しすぎる。神の言語といわれるLISPは、数学のように純粋で美しいロジックが展開できる言語。オシャレな LISP インタプリタ。 - Qiita
    Nyoho
    Nyoho 2024/10/29
  • RubyとLispの切っても切れない関係 #heiseirubykaigi |にゃんだーすわん|pixivFANBOX

    2019年12月14日に開催された平成Ruby会議01で飛び込みLTとして発表しました。 Ruby系カンファレンス(の関連イベント)での発表者としての経験は日Ruby会議2011の闇ルビヰ會議、札幌市中央区Ruby会議01、Ruby広場(RubyKaigi 2013)に次いでの発表だったと思います。Shibuya.rbとか含めると何度かあるけど。思えば遠いとこ...

    RubyとLispの切っても切れない関係 #heiseirubykaigi |にゃんだーすわん|pixivFANBOX
  • コンピューティング史見聞録(12)ジョン・マッカーシーの発想と発明 – 京都テキストラボ情報&教育サイト

    前回に引き続き、人工知能の父の一人であるジョン・マッカーシーについて触れていこう。 マッカーシーは1950年代半ばに人工知能(Artificial Intelligence)という用語を考案し、「ダートマス会議」の中心人物として分野の発展に多く貢献した。 この時代以前にもサイバネティクスという言葉に代表される同様の分野の研究は行われていたのだが、マッカーシーは30歳前にしてここに新たな潮流をもたらす核となったわけである。 ジョン・マッカーシー ■マッカーシーとLisp マッカーシーは、コンピューティングの歴史に残る「知的な発明」を多く生み出した。彼が学生だった頃はコンピューターを専門の研究分野としていた人はもちろんいなかったわけだが、数学や科学の他分野で訓練を積んだ研究者たちが、培った知見や研究態度をコンピューティングの分野で発揮することによって、異なる考え方を含んだ豊かな土壌が生まれるこ

    Nyoho
    Nyoho 2024/02/01
  • Smalltalk-72で遊ぶOOPの原点:宇宙船「spaceship」の仮実装と複数インスタンスの動作確認 - Smalltalkのtは小文字です

    アラン・ケイの“メッセージングによるプログラミング”という着想に基づき(非同期処理などいろいろ足りていないながらも──)比較的忠実に実装された1970年代の非常に古いSmalltalk-72に実際に触れてみるシリーズ 第2弾です(なお最新のSmalltalkについては Pharo などでお楽しみください!)。 今回は謎言語「Smalltalk-71」で書かれたスペースウォー・ゲームを Smalltalk-72に移植して動かすことを目指します。前回(2019年)を含む他の記事はこちらから→Smalltalk-72で遊ぶOOPの原点 | Advent Calendar 2023 - Qiita 描いて移動するだけの spaceship 複数の宇宙船のキーボードからの同時操作を早く試さないといけないので、まず移動 moveship と描画 display ship のみに限定した spacesh

    Smalltalk-72で遊ぶOOPの原点:宇宙船「spaceship」の仮実装と複数インスタンスの動作確認 - Smalltalkのtは小文字です
    Nyoho
    Nyoho 2023/12/21
  • PLDI 2021: Evolution of Emacs Lisp

  • https://dl.acm.org/doi/abs/10.1145/3386324

  • consult.el の非同期コマンドの仕組み - ワタタツの日記!(2022-12-09)

    ☆ consult.el の非同期コマンドの仕組み このエントリはEmacsのAdvent Calendar 2022の9日目用です。 以前の記事「はてなブックマーク用のconsultコマンドを作っている」で書いた consult-hatena-bookmark を改良するにあたり、今年夏から秋にかけて、(自分としては)かなり consult.el のコードを読みました。 そのコードリーディングの中で、consult.el が非同期な候補の読み込みをどうやっているのか、だいぶわかったのでご紹介します。 公式で非同期で読んでいる consult コマンドのまねをしたい 公式で用意されている consult コマンドの中で、候補を非同期で読んでいるタイプのものは次などがあります。 consult-grep consult-ripgrep consult-man consult-find コマン

    consult.el の非同期コマンドの仕組み - ワタタツの日記!(2022-12-09)
    Nyoho
    Nyoho 2023/01/02
    去年の夏から秋にかけて頑張ってEmacs lispをコードリーディングしてわかったconsult.elの非同期のことをアウトプットしました。
  • Rustで簡単なLispを書いてみた

    初めに 先日Rustの勉強で、jpmens/joをRustに移植してみたんですが、 ちょっと課題がシンプル過ぎたので、Lisp処理系を書いてみました。 記事は「こんなことをやったよ」くらいの内容で、実装について細かくは書いていないため、 それでも興味ある方は読んでもらえたら嬉しいです。 rispについて 四則演算、変数、関数しか動かない簡単なインタプリタです。 実装 Lisp自体がよくわかっていないので、お気楽 Common Lisp プログラミング入門を読みつつ雰囲気を掴んでいまた。 Lispのリスト構造は(関数 引数...)という感じなので、stack/pop すれば動くかなと思って、最初はこんな感じに雑に実装していました。 初期実装 fn eval(&mut self, chars: &mut Peekable<Chars>) -> String { loop { let ch =

    Rustで簡単なLispを書いてみた
  • REPL駆動プログラミングについて

    記事は、Mikel Evins氏のOn repl-driven programmingの翻訳を、人の御了承を得て公開するものです。なお、関連記事であるProgramming as teachingの翻訳も公開していますので、どうぞご覧ください。 REPL駆動プログラミングについて 2020-12-18 by Mikel Evins その昔、「entha_saava」というハンドルネームの人が、Hacker Newsにこんな質問を投稿していました。 誰か詳しい方に LispのREPL と PythonRubyのREPLがどう違うのかを説明してもらえないでしょうか? LispのREPL駆動開発の差別化ポイントは何ですか? その答えは、プログラムを実行しながら対話することでプログラムを構築する特有のプログラミング手法があり、そのような手法をサポートするために一から設計された言語やランタイム

    REPL駆動プログラミングについて
    Nyoho
    Nyoho 2022/08/30
  • Risp (in (Rust) (Lisp))

    Many years ago, Peter Norvig wrote a beautiful article about creating a lisp interpreter in Python. It’s the most fun tutorial I’ve seen, not just because it teaches you about my favorite language family (Lisp), but because it cuts through to the essence of interpreters, is fun to follow and quick to finish. Recently, I had some time and wanted to learn Rust. It’s a beautiful systems language, and

    Risp (in (Rust) (Lisp))
  • つくって学ぶプログラミング言語 RubyによるScheme処理系の実装

    プログラミングをより深く理解するための近道は、プログラミング言語を実装してみること。SchemeのサブセットをRubyで実装していくことで、プログラムはどう実行されるのか、その基がはっきり分かります。 ※書はCC BYにより配布されています。上記の「買い物かごへ」ボタンからは有償で購入できます。無料で入手したい場合は、下記リンクよりダウンロードしてください。なお、有償版も無償版も内容は同一です。 EPUB版PDF版内容紹介プログラムは書けても、その基礎となっている計算機科学(コンピュータサイエンス) の理解があやふやな人を、著者は多く見てきました。プログラミングに自信があるという人が、もう一歩先に進める道を示したいというのが、この文書を書き始めた動機です。 この文書を読むことで次の効果が得られることを期待しています。 プログラミング言語とは何かを深く理解することで、プログラミングのレベ

    つくって学ぶプログラミング言語 RubyによるScheme処理系の実装
  • Emacs Lisp で実装する、9つのフィボナッチ関数 - Qiita

    概要 基的に Emacs Lisp (または、Lisp 自体)をあまり知らない方向けです。 Emacs Lisp でどんなコードが書けるのかを知って、興味を持ってもらえればと書きました。 さて、Lisp はマクロで構文を拡張出来る事が特徴ですが、もちろん Emacs Lisp も例外ではなく、フィボナッチ関数を色々な書き方で実装する事が出来ます。 今回は、それ以外にも、ジェネレータ版、遅延評価版、果てはスタックマシーンのコードを直接記述する方法まで、取り揃えました。 (それぞれの関数は、簡単の為、引数に負の値が指定されない事を前提にしています。) 内訳は以下の通りです。 再帰呼び出し系 fib-tail-recursion fib-double-recursion ループ系 (マクロを展開すると結局は同じ様なコードになるけど、色々な書き方が出来る) fib-while fib-dotim

    Emacs Lisp で実装する、9つのフィボナッチ関数 - Qiita
  • Lispはなぜ覇権を握らなかったのでしょうか?

    回答 (9件中の1件目) え?覇権ですか?とってますよ。 ご家庭での掃除ロボットの制御分野ですが。 * ルンバ一強に拍車、ロボット掃除機市場でシェア7割超え - BCN+R ルンバ (掃除機) - Wikipedia > ルンバのソースコードはカスタマイズされたLISPで書かれている[73]。 https://twitter.com/RainerJoswig/status/802642786168274944?s=19 掃除機ロボット「ルンバ」の動きが分かる長時間露光の写真 - NAVER まとめ 上記はルンバの軌跡ですが、それを描いているのがLispのコードです。 ルンバ...

    Lispはなぜ覇権を握らなかったのでしょうか?
  • GitHub - justinbarclay/parinfer-rust-mode: Simplifying how you write Lisp

    Nyoho
    Nyoho 2020/08/12
    おおこれはlisp書くのに超便利!
  • マシな作り方の作り方を作る | 麦 Baku

    ここ最近、Glispというアプリをつくっています。Lisp ベースのベクタードローイングツールで、Creative Coding と伝統的なチマチマやるデザインとの合わせ技っぽい使い勝手を目指してます。 ひとまずCuusheさんのビデオに手入れ続けて止まらないのが気が済んでからなのですが(ごめんなさい…)、終わったら格的にこれに注力してみたいなと思っとります。だから助成金やファウンディング含めてみなさんに色々ご相談したいです。 #glisp – Twitter Search / Twitter これが実現したらようやく「こいつなんか意味分からん事言って Adobe に因縁つけてるな」みたいなんがもう少し多くの人に理解してもらえる気がしています。少なくともベクターグラフィックに関しては、ソフトの使い勝手に気が散ってツール開発をしないとしんどくなる体質が改善して実制作に集中出来るようになれま

    マシな作り方の作り方を作る | 麦 Baku
    Nyoho
    Nyoho 2020/06/28
    コード側だけじゃなくてGUI側も動かしてコードが同期するのがSwiftUIっぽくて(・∀・)イイ!!
  • Lispのデータ構造

    Lispにおいて,基的なデータ構造はドット対 (dotted pair)である. ドット対はconsセルと呼ばれることもある. ドット対は,cons 関数によって作成される. (cons 1 2) (1 . 2) (cons 1 2) により,数値1と数値2のドット対が作成されている. ドット対は (1 . 2) のように表示され, 左側は car 要素,右側は cdr 要素と呼ばれる. ドット対を以下のように図示することにする. 丸はアトム(数値や記号)を表し,箱がドット対を表している. 箱の左側がドット対の左側の要素 (carの部分), 右側が右側の要素 (cdrの部分)に対応する. (cons (cons 1 2) (cons 3 4)) で作成される データ構造 ((1 . 2) . (3 . 4)) を図示すると以下のようになる.

    Nyoho
    Nyoho 2019/11/26
    ドット対
  • cl-vs-haskell.7

    Nyoho
    Nyoho 2018/10/08
    本稿は「すごいH本」の内容をCommon Lispに翻訳しながらCLerがHaskellを学ぶその第7章である
  • Pythonのリスト内包表記はチューリング完全だから純LISPだって実装できる - Qiita

    ところでこのリスト内包表記、チューリング完全だって知ってましたか? こちらの記事でそのことが示されています。 リスト内包表記の活用と悪用 by @KTakahiro1729 あああっ! 開かれるPythonワンライナー&難読化の世界!! ステキすぎる!!! 超カッコいい!!!! ……でも、われわれはbrainfxxkだけで満足していてよいのでしょうか。ぼくは、もっと抽象的で、カッコよくて、とっても使いやすい枠組みがあれば、もっといろんなことができて楽しいと思うんです。 たとえば、LISPとか。 ほかには、LISPとか。 そういうことをニヤニヤと妄想してたら、リスト内包表記によるLISP実装が生えてきました。なにこれ! できたもの このようなものができました! 各ソースファイルは以下のようなポジションになっています: lisc.py: 全部を一つのリスト内包表記で書いたもの lisc_par

    Pythonのリスト内包表記はチューリング完全だから純LISPだって実装できる - Qiita
    Nyoho
    Nyoho 2018/04/04
    内包的記法だけでいけるのか
  • Common Lispでゼロから作るディープラーニング (1)行列演算とニューラルネットのフォワード計算 - Qiita

    Common Lispは非常に単純でありながら簡単に拡張可能な構文を持つ高水準言語です。Lispは昔からAIプログラミングに活用されてきましたが、最近では記号処理ベースのAIから機械学習ベースのAIへと世の中の関心が移っており、Pythonなどが主に用いられるようになっています。 とはいえ、Common Lispは機械学習のような科学計算にも向いています(Common Lispが機械学習に向いていると考えるこれだけの理由)。 Common Lispの科学計算に適した特徴としては、例えば以下のようなものが挙げられるでしょう。 最適化されたネイティブコードを吐き出す優秀なコンパイラがOSSにも商用にも存在する 高水準言語でありながら低レベルな世界に降りていって最適化することもできるので、開発効率と実行効率のバランスを取りやすい Cライブラリを簡単に利用できるインターフェースがある この連載では

    Common Lispでゼロから作るディープラーニング (1)行列演算とニューラルネットのフォワード計算 - Qiita
  • 極小Lispインタプリタ作成で学ぶパーサーコンビネータ with Swift - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    極小Lispインタプリタ作成で学ぶパーサーコンビネータ with Swift - Qiita