並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 10 件 / 10件

新着順 人気順

lispの検索結果1 - 10 件 / 10件

  • Lispはなぜ覇権を握らなかったのでしょうか?

    回答 (9件中の1件目) 広く普及しているとは言い難いですが、今でも新しい製品に採用されることはあります。 数年前、私はあるiOSとAndroid向けのゲーム開発に携わっていました。中でもAIの出来が面白さに大きな影響を与える種類のものでした。 プログラマーの同僚が1人、Lispに大変に強い思い入れがあり、そのAIは同僚の作ったLispインタプリタで動作しています。構文解析が簡単で、ゲームデザイナーのあーしたい、こーしたいの要望にもインタプリタの拡張で対応できる柔軟さがありました。 また別の同僚は、Lisp方言のClojureでゲーム開発の効率を高める特別なコンパイラを書いていまし...

      Lispはなぜ覇権を握らなかったのでしょうか?
    • Lispを実装したくなったら読んでほしい本6選 - Arantium Maestum

      言語実装 Advent Calendar 2022の1日目の記事として書いた。 Lisp Advent Calendar 2022でも枠が空いていたのでダブル投稿。 プログラミング言語を実装してみたい!と思ったらまずは簡単なLispインタプリタから始めるというのは一つの王道だと思う。 複雑な構文解析は要らず最低限の再帰下降法パーサで手に入る構文木を、そのまま再帰的な関数で実行していくtree walking評価器。メモリ確保もヒープにそのまま置いていって、メモリ解放は実装言語のGCに任せるなりプログラムの終了時までやらなかったり。そんなインタプリタを作る経験から得られるものは非常に大きく、どんなプログラマでも一回は試してみてもいいのではないか?と思っている。(個人的な感想です) そんな簡易Lispを実装してみて沼にハマってしまい、より精緻な言語処理系を作りたいと思ったとする。その時点で:

        Lispを実装したくなったら読んでほしい本6選 - Arantium Maestum
      • 新しいプログラミング言語を学ぶとき、簡単なLisp処理系を作るという話

        私は新たにプログラミング言語を学ぶとき、しばしば簡単なLisp処理系を作ってみます。いくつかの言語で取り組んでいるうちに、このLisp処理系群に小さな共通基盤も出来上がったりしているので、これを紹介しつつ、Lisp処理系の実装がプログラミング言語の学習にどう丁度いいのかを紹介します。 Rosetta Lisp 自作のLisp処理系群を、ロゼッタ・ストーンから名を借りてRosetta Lispと呼んでいます。Rosetta Lispは以下のような特徴を持ちます。 一定の共通した言語仕様・VMの仕様に基づいて動作する Rosetta Lispは (Rosetta Lispに準拠するLisp処理系群は)、いずれも共通した命令セットのVM上でLispプログラムを実行するように実装されています。 Lispの簡単な実装では、よくインタプリタ形式が採用されます。kanaka/malやrui314/min

          新しいプログラミング言語を学ぶとき、簡単なLisp処理系を作るという話
        • 究極のスキルアップ!プログラマーのあこがれ言語「Lisp」を始めよう

          新型コロナウイルスの感染がまたも拡大し、外出を控える人が増えてきた。自宅で何かできることを探している人は多いはずだ。中にはプログラミングを始めてみたい人もいるだろう。あるいは、プログラミングに関する新しい技術を身に付けたいソフトウエアエンジニアもいるかもしれない。 プログラミングを学ぶ際には、プログラミング言語の選択が重要になってくる。言語が異なると、プログラムの書き方が変わってくるからだ。 では、どの言語を学べばよいだろうか。最近はPython(パイソン)が人気で、Go(ゴー)やRust(ラスト)といった低レイヤーに強い言語も注目を集めている。ただ、「人と同じような言語を学ぶのはつまらない」と考える人もいるかもしれない。 そうした人にぜひお勧めしたいのが「Lisp(リスプ)」だ。数ある言語の中でも独自の存在感を放つ。現役バリバリでソフトウエアを開発しているプログラマーでも「いつかはLis

            究極のスキルアップ!プログラマーのあこがれ言語「Lisp」を始めよう
          • Ichigo Lispコンパイラ完全解説

            Ichigo Lispコンパイラ完全解説 はじめに この記事では私がWebAssemblyで書いた Ichigo Lispという LISP 1.5実装のコンパイラのソースコードをすべて解説する。 というのも、最近とあるコンパイラの本を読んで 「説明が特定の実装に基づいてる割にそのソースが一部しか載ってない」 という不満を感じたのだが、自分で書いたコンパイラの記事 を読み返してみると、コンパイラのソースコードが一切出てこないことに気づいた。 こんな記事を書きながらよく人様の本に不満を持てたものだと 瀬戸内海より深く反省したので、 ここにIchigo Lispのコンパイラのすべてのソースコードを解説する。 想定読者とか Ichigo Lispのコンパイラは(ほとんど)すべてLISP 1.5で書かれている。 LISP 1.5特有のややこしい機能などは使っていないので、 Common Lisp、S

            • シェルスクリプトでLISP処理系を作ってみた

              【2022-01-22追記】簡易版のLISP処理系をPOSIX準拠シェル(+sed)で作成する様子の動画を作成してみました. この記事は,筆者がシェルスクリプトで簡易実装している純LISP処理系の開発についてまとめたものです.『PureLISP.sh』と呼んでおり,次のGitHubリポジトリでパブリックドメインとして開発・公開しています. 基本的には,上記リポジトリのREADMEの内容を記事として膨らませたような構成です.このことから,今回の記事内容に関するコメント等だけでなく,『PureLISP.sh』そのものへの御意見等(GitHubのIssues/Forkを含む)も受け付けます.ただし,開発の経緯・目的から,次の3点は維持します. 最低限必要な要素で構成されたLISP処理系を志向すること POSIX準拠のシェルスクリプトで実装すること パブリックドメインにて開発・公開すること なお,

                シェルスクリプトでLISP処理系を作ってみた
              • ChatGPTのプロンプトをLispで書く

                ChatGPTのプロンプトをLispで書けることに気づきました。プロンプトによって処理系としてふるまってもらうという話は聞いたことがありましたが、Lispの場合はそのようなプロンプトがなくても解釈されました。 モデルはGPT-4です。言語としてはClojureをベースにした擬似コードを書いています。 ※いくつか例を追加しました。思った以上にプログラミング的なことができるみたいです。 単純な生成と変換の例 子供っぽくする 静かなヤンデレっぽくする (しっぽりやんでれ?) 対偶を返す 小説を作ってそれを要約する 鶏の唐揚げのレシピのJSONを生成する Lispについて執事っぽく説明する クラムチャウダーのレシピを妹として箇条書きにする お兄ちゃんとツンデレの妹の誕生日ケーキについての会話を生成する Clojureの関数を使う例 3つの文を元気にする 犬の名前を5個生成してひらがなにする キリン

                  ChatGPTのプロンプトをLispで書く
                • とほほのLISP入門 - とほほのWWW入門

                  1958年に MIT の John McCarthy によって設計されました。 FORTRAN(1954年)や COBOL(1959年)と肩を並べる、歴史の長いプログラミング言語です。 命名は「list processor」に由来していて、リストを主要に扱っています。 文と式の区別が無く、IF文などもすべて式として扱います。 演算子と関数の区別もなく、例えば 3 + 5 の加算は + 関数を用いて (+ 3 5) のの様に表します。 Common List, Scheme, Emacs Lisp などいくつかの方言があります。 Emacs という UNIX 上のテキストエディタのカスタマイズ言語としても利用されていました。 Common Lisp は ANSI INCITS 226-1994 として定義されており、現在の主流となっています。 Common Lisp にも SBCL(Stee

                  • Emacs-Lisp入門 2021

                    *scratch* バッファ S式の評価 直前のS式を評価 → C-j(結果は次行) カーソルの直前のS式を評価 → C-x C-e / eval-last-sexp(結果はミニバッファ) カーソルの位置か、そこ以前の行頭で始まるS式を評価 → M-C-x / eval-defun バッファ全体を評価 → M-x eval-buffer 選択範囲を評価 → M-x eval-region 各種定義の確認 関数定義の確認 → (symbol-function '関数名) interactiveじゃない関数をEval → M-: / eval-expression 入力履歴は M-: からの M-p / M-n で辿れる C-x M-: / C-x M-ESC で直前のコマンドを再実行 / repeat-complex-command 入力シンボルの補完 → M-Tab (emacs-list

                      Emacs-Lisp入門 2021
                    • Lispとオブジェクトシステム

                      Lispとオブジェクト、オブジェクト指向システムを概観します。

                        Lispとオブジェクトシステム
                      1