タグ

lisp*に関するsh19910711のブックマーク (122)

  • ChatGPTのプロンプトをLispで書く

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

    ChatGPTのプロンプトをLispで書く
    sh19910711
    sh19910711 2024/04/19
    "GPT-4 + 擬似コード / 思った以上にプログラミング的なことができる / 「Lispの処理系として振る舞ってください」のようなプロンプトは必要ありませんでした / 自然言語で書くよりもトークンが少なく" 2023
  • LispKit Lisp処理系の実装 序 - Arantium Maestum

    純粋関数型Lisp方言であるLispKit LispのインタプリタとSECD抽象機械の機械語へのコンパイラを作成する。 タネはHendersonの「Functional Programming - Application & Interpretation」で、このに載っているISWIMやPASCALのコードを大体なぞるようにPythonで書いていく。(最近出た「コンパイラー原理と構造ー」でもSECDマシンへのコンパイルの話題が出ているらしいがまだ届いていないので未確認・・・) 例によって長くなるので複数の記事に分ける。 流れとしては以下のようになる: LispKit Lispの紹介 (記事) パーサとAST インタプリタ 前編 後編 SECD抽象機械の実装 1 2 3 SECD機械語へのコンパイラ SECD抽象機械ガベージコレクション LispKit Lisp LispKit Lis

    LispKit Lisp処理系の実装 序 - Arantium Maestum
    sh19910711
    sh19910711 2024/04/11
    "LispKit Lisp: Hendersonが考案したSECD抽象機械にコンパイルできる(=非常に簡単にいろんなアーキテクチャにポートできる)正格評価な純粋関数型のLisp + LandinのISWIMの中間表現のような言語" 2021
  • Lispはなぜ神の言語と呼ばれるのか - SEむううみんのプログラミングパラダイス

    古から存在するプログラミング言語Lisp。その通り名の一つに「神の言語」というものがある。 なんという甘美な響きだろうか。この名前だけで男子中学生は全員習得することを決心するだろう。そのくらいインパクトのある名前である。文部科学省はプログラミング教育を推進するにあたって、この通り名を公式に採用することを真剣に検討されると良いと思う。 さて、「神の言語」の勉強を始めてみて驚くだろう。どのあたりが神なのかよくわからないのだ。たしかに丸括弧は多い。多いが、それと神との関連性はよくわからない。 何か土着の信仰の話なのだろうか?あなたがそう戸惑うのも無理からぬことだ。 私自身、前からこのフレーズは聞いたことがあったが、あまり理解していなかった。そこで今回改めて調べてみたので共有しようと思う。 「神の言語」の由来 そもそも、Lispは神の言語だと誰が言い出したのか?どうやら海外でそのような歌が作られた

    sh19910711
    sh19910711 2024/02/14
    "「神の言語」の勉強を始めてみて驚くだろう。どのあたりが神なのかよくわからないのだ。たしかに丸括弧は多い / 実用Common Lisp: 「解き方がわからない問題」についてどのようにアプローチしていったか" / 2021
  • Lispとハッカー: 港区赤坂四畳半社長

    正直言うと、Lispは10年くらい前に一度一通りなめただけで、「なんでこんな使いづらい言語を有り難がる人がいるんだろう」と思って放置していました。 こんな僕は当然、ハッカーを名乗る資格も語る資格もないのですが、最近Lispをもう一度勉強しようといろいろなを読んでいます。 そのきっかけはこの ハッカーと画家 コンピュータ時代の創造者たち 作者: ポール グレアム出版社/メーカー: オーム社発売日: 2005/01メディア: 単行 Lispハッカーとして著名なポール・グレアムので、彼はLispを使って実際にWebサイトを作り、Yahooに買収され、Yahoo Storeになるなど、実際にLispで商業的成功を収めたという、珍しい人です。 ハッカーと画家、ブログの抜粋らしく、前半は退屈な部分も多いのですが、後半になるとぐんぐん面白くなります。 いかにして彼が世間と戦ってきたか。ライバルが

    Lispとハッカー: 港区赤坂四畳半社長
    sh19910711
    sh19910711 2024/02/11
    "ハッカーと画家: ブログの抜粋らしく、前半は退屈な部分も多い / Lispは開発されたのではなく「発見されたのだ」という表現 / 三十路になって改めてLispを眺めてみると、これほど美しい言語はないかもしれない" / 2008
  • ガベージコレクション実装したいからLISP風インタプリタ作った

    ガベージコクレクションは手を動かすまでがちょっと遠い 下記の記事で書いたように、私は今ガベージコレクションに夢中です。 少し勉強して、ガベージコレクションの難しさの1つは「実装してみる」までが遠いところなのではないかと思っています。 ガベージコレクションというのは、それ単体で成り立つものではなく、基的にはプログラミング言語の処理系と一緒に実装されるものです。したがって「ガベージコレクションに入門するぞ〜」と意気込んで理論を勉強しても、実装する対象となる適切な処理系がない、という問題に直面することになると思います。 多分、多くの人がそうなったのでは?と勝手に予想しているんですが、どうなんでしょう。 少なくとも私はそうなりました。 現実の処理系は複雑で難しい ガベージコレクションが実装されており、かつ日語話者が関わりやすい処理系としてはまず CRuby が思いつきます。しかし CRuby

    ガベージコレクション実装したいからLISP風インタプリタ作った
    sh19910711
    sh19910711 2023/09/03
    "ガベージコレクションの難しさの1つは「実装してみる」までが遠いところ / 「ガベージコレクションに入門するぞ〜」と意気込んで理論を勉強しても、実装する対象となる適切な処理系がない、という問題に直面する"
  • Clojureの思い出 - yasuhisa's blog

    ふと思い立ったので、記憶から忘却される前に書いてみようと思います。もう2年くらい書いてないけど、4年ほど仕事で使っていました。その期間はコード書くときはほとんどClojureだったので、まあまあヘビーに使っていたと思います。 前提 Clojureを使うようになったきっかけ ここがよかった、Clojure Immutableな世界 リスト系関数の充実 困ったときにはJavaに逃げられる マクロ Deployが容易 並列処理が容易 ClojureScript面白い ここが辛いよ、Clojure コード上で型が分からない パフォーマンスチューニング ちょっとしたcliアプリが書きにくい 再帰をよく使う 前提 メリット/デメリットはコンテキストによるだろうと思うので、どんな感じで使ってたかを書いておきます。 機械学習/自然言語処理の研究開発用途 最近だとPython一択になりつつありますが、数年前

    Clojureの思い出 - yasuhisa's blog
    sh19910711
    sh19910711 2023/08/12
    "もっと刺激が欲しいという気持ちが勝って、ClojureやHaskellが選択肢 / 修論前に現実逃避できるおもちゃが欲しかったのかも / immutableなデータ構造が前提なので、コードを書くときに考えればよいスコープがすごく狭く" / 2018
  • Island Life - 『プログラミングClojure』のできるまで (訳者サイド)

    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 - 『プログラミングClojure』のできるまで (訳者サイド)
    sh19910711
    sh19910711 2023/08/02
    "ドイツ人の友人に話したら、 「いいなあ、ドイツではCS関連書のドイツ語翻訳というのは需要が少なすぎて出せないなあ」 と言われた / 専門書の翻訳書が出せる市場がある、という点では日本はわりと貴重な存在" / 2010
  • マクロすごい。すごいマクロ。 - (define -ayalog '())

    マクロすげええええええええええええええ 2013-07-17 09:21:57 via Twitter for iPhone ということで、マクロに感動した。マクロ凄い。 このブログを書くようになったきっかけである9LISPからかれこれ1年半が経ちました。 9LISP - 037 当時、Lispを勧められたとき「何が凄いんですか?」って聞いたら「ifが自分で書けるんだよ」と某@valvallowさんに言われたのを今でも覚えています。あと、valvallowさんに「LispはFortranの次に古い言語で、1958年にジョン・マッカーシーによって"発見"されたんです。ちなみに僕のお父さんも1958年生まれなので、つまり僕のお父さんはLispです!」*1って言われたのも覚えています。ついでに言うと当時の僕はFortranってなんとなく名前しか知りませんでした。むしろ、今でも名前しか知りません。

    sh19910711
    sh19910711 2023/07/16
    "Lispを勧められたとき「何が凄いんですか?」って聞いたら「ifが自分で書けるんだよ」 / 当時の僕は「ifが書けたら何が嬉しいんですか?それメソッドじゃダメなんですか?」みたいなことを、言っていた気がします" / 2013
  • Lispマル非入門 - 新・日々録 by TRASH BOX@Eel

    コンピュータは電子計算機とも訳されるように計算に用いるのが流である、という信念*1の元に、私はちょっとした計算にもパソコンを用いている。 当然ながら*2計算にはLisp処理系のREPLを使用する。*3 ちょっとした計算にてLisp処理系のREPLを用いるメリットは、例えば何かを単純に足し引きする時に、足し引きする値ごとに演算子を書かなくて済むのである。 私はよく買い物の計画を練るのにREPLを用いる: ; ルーターのお守りを任されたけど使い方が分からん。 ; 入門書でも読もうかな。 (+ 4730 ; 978-4839965402 ) ; => 4730 ; そういえば新人向けのLinux入門書を見繕わないと。 ; この辺りのとかどうだろう? (+ 4730 ; 978-4839965402 1980 ; 978-4048913928 2970 ; 978-4797380941 ) ;

    Lispマル非入門 - 新・日々録 by TRASH BOX@Eel
    sh19910711
    sh19910711 2023/06/16
    "買い物の計画を練るのにREPLを用いる / Lisp処理系では値が1個でも3個以上でも加算した結果を得ることができる / REPLを使ってあれこれ考えながらこねくり回す時に、安心して「取り扱う値」にだけ集中していられる"
  • Lisp:よくある正解

    Lispについての正しい認識と、それでもLisperがLispを使う理由 yoriyukiさんのエントリがなかなか 真実を突いていたので、ネタにさせていただきます。 原因のほとんどは経路依存性とかネットワーク効果によるもので、Lisp自体の性質とは無関係だと思います。と言った上で、私が何となくLisp系言語を使わない理由としては、 Too dynamic: 実行時にコードが差し替えられることがすごい利点だ、と言っている人がいましたが、逆に言えば今どのコードが走っているか理解しにくい、という欠点にも繋がる。 Meta programming:S式のおかげでMeta Programmingがしやすいが、Meta Programmingを多用したプログラムは理解しにくい。 動的型付け:利点でもあるけど、特有のバグを引き起こす。 識別子に関数と値の2種類が別々にバインドできる。これは私には非常に美

    Lisp:よくある正解
    sh19910711
    sh19910711 2023/05/14
    "Lispから離れられない事情 / 正しい解決は処理系の改善や、もしかすると コンピュータサイエンスの進歩を待たなくちゃならないかもしれない。 でも、「今、とりあえず」自分を引き止めている限界を乗り越えたい" / 2007
  • 計算機プログラムの構造と解釈[第2版] - n3104のブログ

    計算機プログラムの構造と解釈 第2版 作者:エイブルソン,ハロルド,サスマン,ジュリー,サスマン,ジェラルド・ジェイ発売日: 2014/05/17メディア: 大型 いやー、やっと読み終わりました。隔週の読書会で読んでいたのですが、第1回が 2016-03-23 で、完走するのに約4年半かかりました。読書会自体も合計で92回やっていて、事前の予習というか問題を解く時間も含めると約300時間かかりました。おそらく1冊の書籍にかけた期間と時間の両方で過去最大だったと思います(^_^;) 2020年分の振り返り 今年は5章をやっていたわけですが、LISPマシン向けのレジスタ計算機シミュレーターを作成し、そのシミュレーター上で動作するインタプリタとコンパイラを作成するということで、ほんとLISPづくしだったなと思います。問題を解くためコードは一通り理解したので、最終的にはLispコードからどういう

    計算機プログラムの構造と解釈[第2版] - n3104のブログ
    sh19910711
    sh19910711 2023/04/16
    2020 / "隔週の読書会で読んでいたのですが、第1回が 2016-03-23 で、完走するのに約4年半 / 読書会自体も合計で92回やっていて、事前の予習というか問題を解く時間も含めると約300時間かかりました"
  • clojure.core.logicでPrologのような論理型プログラミング - t2ru's blog

    clojure.core.logicというClojureをProlog化するライブラリがある。 Prologとは、論理型プログラミング言語。 下記のサイトで詳しい説明をしている方がいらっしゃるので、論理型言語についての説明は省略。 http://www.geocities.jp/m_hiroi/prolog/ このPrologのようなことが、論理型言語ではなく関数型言語のClojureで、ライブラリ clojure.core.logic をロードするだけでできてしまう。 https://github.com/clojure/core.logic The Reasoned Schemer というは、Schemeで論理型プログラミングを実現する内容だが、 clojure.core.logic はこのの内容をClojureに移植したもの。 The Reasoned Schemer 作者: D

    clojure.core.logicでPrologのような論理型プログラミング - t2ru's blog
    sh19910711
    sh19910711 2023/03/06
    2012 / "clojure.core.logicというClojureをProlog化するライブラリがある / The Reasoned Schemer という本は、Schemeで論理型プログラミングを実現する内容だが、 clojure.core.logic はこの本の内容をClojureに移植したもの"
  • いまどきのClojureのはじめかた - 紙箱

    Clojure 1.9あたりから、Clojureの始め方が大きく変わったのですが、その辺りをまとめた記事が見当たらず、すでにClojureをやってる人しか知らない状態っぽいので、急ぎで書いてみました。 大きく変わったのは、 clojure および clj というコマンドが導入されたことです。これまではClojureの実行には Leiningen のようなビルドツールを使うのが一般的で、スクリプト的なコードを書くのには向いてない印象でしたが、1.9からは、 clojure コマンドに .clj ファイルを渡すと実行できるようになりました。また、コマンドが用意されたことで、シェル・スクリプト冒頭に #! で clojure コマンドへのパスを書くことで、シェルスクリプトとしてClojureコードを記述できるようになりました。 この二つのコマンドをインストールする手順が、環境ごとに用意されていま

    いまどきのClojureのはじめかた - 紙箱
    sh19910711
    sh19910711 2023/03/05
    2018 / "Clojure 1.9あたりから、Clojureの始め方が大きく変わった / これまではClojureの実行には Leiningen のようなビルドツールを使うのが一般的 / 1.9からは、 clojure コマンドに .clj ファイルを渡すと実行できるように"
  • Lisp:S式の理由

    S式は人に優しいか Shiro: Lispの不人気の理由として筆頭に上げられるのが、括弧だらけの 独特の見た目。とっつきにくい、一般的な表記法と違っていてわかりにくい、 等々、様々なことが言われてきました。しかし、 S式を捨てたLispも開発されましたが 流行ったとはいい難く、Lispな人々はいまだに括弧に固執しているかのようです。 S式のメリットをLisperに尋ねれば、エディタがどうの、マクロがどうの、といった 回答が真っ先に返って来ると思うんですが、そういう理屈をいくら理解しても S式がダメな人がS式を好きになったりはしません。どうも、もっと根的な 感覚に大きな隔たりがあるような気がします。非Lisperから理解しがたい、 Lisperの持つ感覚とはどんなものなんでしょうか。Lisp脳から見た世界は どんなものなのでしょうか。 構文木を人間が書く? S式は言ってみれば言語の構文木そ

    Lisp:S式の理由
    sh19910711
    sh19910711 2023/02/22
    2007 / "S式を捨てたLispも開発されましたが流行ったとはいい難くLispな人々はいまだに括弧に固執している / S式は最小限の労力でグラフをテキストにシリアライズする手段 / プログラマが言語設計者でもあることを想定"
  • 🖊なぜ仮想通貨botをPythonではなくClojureで書くのか

    現在仮想通貨botの開発をClojureで書いてますが, なぜPythonでなくてClojureなのかを自分の中で言語化しておきます. Pythonが主流だし, そんななかで意味不明のリスクを取ることは音は不安です. なので日記に書いておきます. システムトレードのヒカキンになりたい人生だった# 2014年にFXのシステムトレードをPythonでやっていた# 2015年夏, 今から7年前にわたしがFXのシステムトレードをPythonでやろうとしたとき, Pythonでシステムトレードをしている人がとても少なかった. 夏休みの自由研究 は OANDA APIを利用して FX システムトレード | Futurismo 日語で情報を探すとほとんど情報がないかもしくはtickを取得してみた系の入門記事のみ. Pythonでシステムトレードを組む情報は英語しかなかった. わたしは3万円くらいの怪

    sh19910711
    sh19910711 2023/02/20
    2022 / "まさかPythonが人気言語になることもAIブームが来ることもビットコインが人気になることも全く2014年の時点では見えなかった / 2014年に未来が見えなかったということはこの先数年でClojureの人気が来るかもしれない"
  • 真・自然言語プログラミングの"the"演算子をClojureで - Homoiconic Days

    みなさん、明けましておめでとうございます。今年もよろしくお願いします(遅 さて、今回のネタは"the"演算子をClojureで実装してみたという話。"the"演算子といってもCommon Lispのtheではありません。 2年半ほど前に、FLTV(Future Language TV)という未来の言語を妄想するイベントがありました。そこで@kinabaさんが「Rhetorical Programming 真・自然言語プログラミング」というタイトルで発表をされていました*1。その発表は、自然言語から(構文ではなく)機能を借りてくるという発想のもと、3つの強力な機能について紹介したものでした。そのうちのひとつが"the"という演算子で、「文脈から何を指しているのか特定できる」英語の"the"から機能を借りてきたものです。発表資料では「型を1つ引数にとり現在のスコープに唯一存在するその型のオブジ

    真・自然言語プログラミングの"the"演算子をClojureで - Homoiconic Days
    sh19910711
    sh19910711 2023/02/10
    2012 / "FLTVという未来の言語を妄想するイベント / 自然言語から(構文ではなく)機能を借りてくるという発想 / そのうちのひとつが"the"という演算子で、「文脈から何を指しているのか特定できる」"
  • 『プログラミングGauche』を読んだ

    フムフムヌクヌクアプアアとしても知られる『プログラミングGauche』を最近読みました(今3周目を読んでます)。 読後の感想ですが、ひとことで言えば『Scheme すごい、Gauche 楽しい』って感じです。 プログラミング自体の初心者には向きませんが、ほかの言語を知っていれば難易度の勾配もゆるやかで、無理なく読み進められる良いだと思います。 とくに面白かったのは7章(手続き)、18章(マクロ)、 19章(継続)あたりです。 関数プログラミングに触れたことがない人は、7章まで読むとその面白さを体験できると思います。Common Lispを触ったことがある自分でも、Lisp-1での関数プログラミングの気持ちよさは特筆すべきものがありました。あとLispのパワーを顕著に体感できるのが18,19章です。こういうのを知ってしまうと Scheme ならアレができるのに、とか思ってしまいそうです。

    sh19910711
    sh19910711 2022/12/29
    2014 / "読後の感想ですが、ひとことで言えば『Scheme すごい、Gauche 楽しい』って感じ / 継続ベースのアプリケーションサーバ Kahua を使ったWebアプリ作成の章もあって、非常に興味深い内容でした"
  • ゼロから始めるHy (hylang)

    Hyについて インストール Hyのインストール Hello, world 開発環境の整備 Emacs(hy-mode) インストール Emacsの設定例 REPLの起動 Hyのチュートリアル 関数定義 引数オプション(ラムダリスト) 変数 letが無い!? → マクロで定義する 制御構造 Pythonの呼び出し まとめ Hyについて hylang/hy: A dialect of Lisp that’s embedded in Python ドキュメント: Hy’s documentation Hy(あるいはhylang)はPython上で動くLisp方言である。 構文はClojure風ではあるが、関数型というわけでもなくマルチパラダイム言語なので、使用感はむしろCommon Lispに近い印象がある。 他のLisp系言語と同様にREPLでのインタラクティブな開発ができ、マクロを使って構文

    ゼロから始めるHy (hylang)
    sh19910711
    sh19910711 2022/11/25
    2017 / "Hy(hylang): PythonのVM上で動くLisp方言で、一見Clojureによく似た構文を持つ / Pythonのバイトコードへのコンパイラと、HyからPythonのソースコードへのトランスパイラが付属 / Pythonのライブラリがそのまま使える"
  • なぜLispやMLは分裂するのか

    How were some language communities (eg, Ruby and Python) able to prevent fragmentation while others (eg, Lisp or ML) were not? - Programmers - Stack Exchange stackexchange.comで、面白い話題が議論されていた。LispやMLというのは、いわば、Lisp風言語、ML風言語の総称である。実際には、Common LispやらSchemeやらArcやらと、多数の互換性のない言語が存在している。一方、RubyPythonには、特に大きな分裂は起きていない。CPythonに対してPyPyのような、異なる実装は出ているが、言語は分裂していない。なぜなのか。一体、RubyPythonは、分裂を防ぐために何をしているのか。 色々と議論

    sh19910711
    sh19910711 2022/11/20
    2012 / "Lisp風言語: 多数の互換性のない言語が存在 + 一方、RubyやPythonには、特に大きな分裂は起きていない / Python 2とPython 3は分裂している / 今の言語はすべてLispのパクリだ、などというLisp信者らしき書き込みも"
  • 「Lisp はカッコが多い!」のか実際に調べてみた - Qiita

    この記事は ABEJA アドベントカレンダー 2020 の 20 日目の記事です。 ABEJA ではエンジニアをやっており毎日、Clojure Python を書いています。 動機 Wikipedia のLISP のページにも書かれているように、LISP は一般に「括弧が多い」といった印象を持たれています。 LISP の用いる S 式は括弧を大量に使用するため、批判を受けることもある。「LISP は 『lots of irritating superfluous parentheses』(過剰でいらいらさせる大量の括弧)に由来する」というジョークもある。 この「括弧が多い」印象で、LISP 嫌いを多く排出しているようなのですが、そもそも「当に括弧が多いのか?」が前から気になっていました。 ちょうど、Dataflow, BigQuery を勉強しておきたいと思っていたことも重なり、今回は、

    「Lisp はカッコが多い!」のか実際に調べてみた - Qiita
    sh19910711
    sh19910711 2022/11/16
    2020 / "LISP は一般に「括弧が多い」といった印象 + そもそも「本当に括弧が多いのか?」が前から気になって / Dataflow, BigQuery のお勉強がてら調査 / 残念ながら、皆が思っていた「Lisp はカッコは多い!」を補強する結果"