タグ

Lispに関するslay-tのブックマーク (12)

  • 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
  • GitHub - robpike/lisp: Toy Lisp 1.5 interpreter

    To install: go get robpike.io/lisp. This is an implementation of the language defined, with sublime concision, in the first few pages of the LISP 1.5 Programmer's Manual by McCarthy, Abrahams, Edwards, Hart, and Levin, from MIT in 1962. It is a pedagogical experiment to see just how well the interpreter (actually EVALQUOTE/APPLY) defined on page 13 of that book really works. The answer is: perfect

    GitHub - robpike/lisp: Toy Lisp 1.5 interpreter
  • ごみ集めのない (頭の悪い) LISP

    ごみ集めのないLISP 2020年5月 第17回関西Lispユーザ会 @zick_minoh 頭の悪い

    ごみ集めのない (頭の悪い) LISP
  • Big Sky :: Go言語で Lisp 処理系を作った。

    1週間ほど前の深夜、ふと Go で連結リスト構造を書いていたら次第に car/cdr 形式になってしまい、気付いたら手が滑って Lisp 処理系を作り始めてしまいました。 なぜかこんな時間から突然 lisp を書き始めてしまった。 — mattn (@mattn_jp) March 26, 2020 初日は深夜だったのでパーサを書いた所で終了。次の日の夕方には四則演算と FizzBuzz が動きました。実は Lisp 処理系を書くのは人生でたぶん4回目くらいで、前回はC言語で書きました。 GitHub - mattn/cisp: Minimal Lisp Interpreter https://github.com/mattn/cisp 今回のルールとして「過去の自分の実装や他の実装は見ない」というオレオレルールを作ってしまったので幾分時間が掛かってしまった様に思います。テストコードはさす

    Big Sky :: Go言語で Lisp 処理系を作った。
  • いまから始めるCommon Lisp - Qiita

    この記事はLisp Advent Calendar 2017の二日目の記事です。 はじめに この記事は、Common Lispという初めての人には初めましてな言語の入門記事です。 この世には、Common Lispというとってもカッコいい言語が存在します。その言語はANSIで規格が定められており、宇宙空間で動いたり深海で動いたりし、メタプログラミングが可能で、しかもC言語並に速いという、超クールな言語なのです。 歴史あり、逸話ありのLispであって、実用的と言われるLispです。そんな言語、いますぐに始めてみたいと思いますよね? しかしググってみると、なんだか処理系っていうの (?) がたくさんあったりしてどれを選んでいいのかわからない。rbenv的なものはないの? パッケージマネージャは? アプリケーションのビルドとかどうしたらいいの? ぱっと実用的なプログラムをどう書いたらいいかわから

    いまから始めるCommon Lisp - Qiita
  • Pythonのリスト内包表記はチューリング完全だから純LISPだって実装できる - Qiita

    まえがき Pythonにはリストに対する操作をさっと書ける、リスト内包表記というものが存在します。こんなやつです: >>> [2*n for n in range(5)] [0, 2, 4, 6, 8] # 等価なfor文 >>> lis = [] >>> for n in range(5): ... lis.append(2*n) ... >>> lis [0, 2, 4, 6, 8] ところでこのリスト内包表記、チューリング完全だって知ってましたか? こちらの記事でそのことが示されています。 リスト内包表記の活用と悪用 by @KTakahiro1729 あああっ! 開かれるPythonワンライナー&難読化の世界!! ステキすぎる!!! 超カッコいい!!!! ……でも、われわれはbrainfxxkだけで満足していてよいのでしょうか。ぼくは、もっと抽象的で、カッコよくて、とっても使いやす

    Pythonのリスト内包表記はチューリング完全だから純LISPだって実装できる - Qiita
  • Gopher・Lisp エイリアン・D言語くん LINE スタンプが登場! 高解像度データも販売 – プログラミング生放送

    プロ生から、プログラミング言語マスコット の LINE クリエイターズスタンプがついに登場! Gopher、Lisp エイリアン、D言語くん(D-man)のスタンプです。 LINE での購入は「プログラミング言語マスコット」で検索してください。 プログラミング言語マスコット LINE スタンプ プログラミング言語のマスコットから今回採用したのは次の3キャラクターです。 Gopher は、Go 言語のマスコット。ホリネズミです。 Lisp エイリアン は、正確には言語のマスコットではなく、Lisp プログラマー以外から見た Lisp プログラマーみたいです。 D言語くんは、D言語 のマスコット。英語では D-man と呼ばれています。 イラストは、タキヲさん(@taxiwon)に依頼しました。スタンプが売れるとタキヲさんにもインセンティブが入るよう契約していますので、どんどん買ってくださいね

    Gopher・Lisp エイリアン・D言語くん LINE スタンプが登場! 高解像度データも販売 – プログラミング生放送
  • Lispのカッコは怖くないよ - knjnameのブログ

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

    Lispのカッコは怖くないよ - knjnameのブログ
  • OSSの開発モデルを、そのまま社内に持ち込むのは止めたほうがいい(もしくはコードレビューの話) - kazuhoのメモ置き場

    以前以下のようにツイートした話だけど、OSSの開発モデルを社内開発にそのまま持ち込むのは危険。 チーム開発の場合、簡単にコメント返せないようなPR送られた時点で負けだと思ってる。無駄なコードが生産されないよう事前に設計を詰める作業をすべき / “雑なレビュー - ✘╹◡╹✘” http://htn.to/by5or1 https://twitter.com/kazuho/status/431602421068877824 今日一般的に想定される「OSSの開発モデル」はEric S. Raymondの有名なエッセーである「伽藍とバザール」によって解説されたところの「バザール」である。 「バザール」モデルにおいては、多くの改善提案の中から最善と考えられる実装が取り入れられ、コミュニティで共有されるようになる。同エッセーから引用するなら、 ふりかえってみると、Linux の手法や成功の前例は G

    OSSの開発モデルを、そのまま社内に持ち込むのは止めたほうがいい(もしくはコードレビューの話) - kazuhoのメモ置き場
  • 独習 Scalaz — 独習 Scalaz

    独習 Scalaz これまでいくつのプログラミング言語が羊の衣を着た Lisp に喩えられただろうか? Java は馴染み親しんだ C++ のような文法に GC を持ち込んだ。それまで他にも GC を載せた言語はあったけども、現実的に C++ の代替となりうる言語に GC が載ったことは 1996年には画期的に思われた。やがて時は経ち、人々は自分でメモリ管理をしないことに慣れていった。JavaScriptRuby の両言語もその第一級関数 (first-class function) やブロック構文を持つことから羊の衣を着た Lisp と呼ばれたことがある。S式の同図像性がマクロに適することから Lisp系の言語はまだ面白いと思う。 近年の言語はもう少し新しい関数型言語から概念を借りるようになってきた。型推論やパターンマッチングは ML にさかのぼることができると思う。時が経てば、人

  • 「クロージャの定義」 - hidemonのブログ

    Java7のクロージャの提案者の一人,Neal Gafterのブログが大変参考になるので,ちょっと野良翻訳してみよう. クロージャの定義 Java 言語にクロージャを追加しようという我々の提案に関して混乱があるようだ.そもそも,Javaにはすでに無名インナークラスという形で,クロージャがあるのではないか? すでにあるものをなぜまた追加しようというのか? 一部の人々には,我々の提案には,クロージャとは関係ないものが含まれているように思われているようだ.例えば,control invocation 構文,null型,Unreachable, 型パラメータ付きthrows,関数インターフェイス型,「非ローカル」な returnなどがそうだ.Javapolisでの講演で,なぜこれらの機能が提案に含まれているのかを,これまで不可能だったことを可能にするための実用的な観点から説明したつもりだ.しかし,

    「クロージャの定義」 - hidemonのブログ
  • もうひとつの Scheme 入門

    勾配の緩やかな初心者向け Scheme 入門ページです。 コンピュータは使ったことがあるが、プログラミング経験があまりない人を想定しています。 Scheme の解説はすでに山ほど優れたものがありますが、あえて解説記事を書いてみました。 Scheme のような抽象的な話題は波長が合えばすんなりと理解できますが、あわないと全く理解できません。 他の解説を読んで今ひとつよく理解できなかった人は試しに読んでみてください。 この記事の目標はコンピュータ科学の教科書の決定版である SICP を読める程度の Scheme の知識を提供することです。 目次: 処理系のインストール Scheme を電卓代わりに使う リストを作ろう 関数を定義しよう 分岐 局所変数 繰り返し 高階関数 入出力 代入 文字、文字列 シンボル型 連想リスト、ハッシュ表 ベクトルと構造体 構文の定義 (マクロ) 継続 遅延評価 非

  • 1