並び順

ブックマーク数

期間指定

  • から
  • まで

121 - 160 件 / 163件

新着順 人気順

lispの検索結果121 - 160 件 / 163件

  • GitHub - cosmos72/schemesh: A Unix shell and Lisp REPL, fused together

    Schemesh is an interactive shell scriptable in Lisp. It is primarily intended as a user-friendly Unix login shell, replacing bash, zsh, pdksh etc. As such, it supports interactive line editing, autocompletion, history and the familiar Unix shell syntax: it can start commands, including redirections, pipelines, job concatenation with ; && ||, groups surrounded by { }, subshells surrounded by [ ], a

      GitHub - cosmos72/schemesh: A Unix shell and Lisp REPL, fused together
    • I made a multiplayer shooter game in Lisp

      Developing a multiplayer third-person shooter game as a solo developer is a journey filled with challenges and rewards. I embarked on this adventure to create Wizard Masters, a web-based multiplayer game where players battle as mages wielding elemental spells. Built using Clojure, a Lisp dialect, this project pushed the boundaries of web game development and my own skills as a programmer. Here’s h

      • Gauche - A Scheme Implementation

        Gauche(ゴーシュ)は、スクリプトインタプリタとしての使い易さに重点を置いて 開発を行っているR7RS準拠のScheme処理系です。日常業務の中でのちょっとした処理を行う スクリプトを気軽にSchemeで書きたいなあ、という願望のもとに、 起動が速いこと、システムへのアクセスが組み込まれていること、 最初から多国語対応を考慮していること、 リスト処理ライブラリとして他のC/C++プログラムから簡単にリンク可能であること、 などを目標としています。 Gaucheは多くのUnix系プラットフォーム およびWindows上で動作します。 実装されている機能の概要については、 機能のページをご覧ください。 News 詳しい変更はChangeLogをどうぞ。 また、最新の開発状況はGitリポジトリで知ることができます。 2024/9/3 最新の開発版ソースから毎日作られる"bleeding-ed

        • Emacs Lispでネストしたデータ構造へのアクセスを簡単に

          ;; 作成 (setq plist '(:foo (:bar (:buz 0)))) ;; 読み取り (plist-get (plist-get (plist-get plist :foo) :bar) :buz) ;; スレッディングマクロを使うと読みやすく… なってねえな (require 'subr-x) (thread-first plist (plist-get :foo) (plist-get :bar) (plist-get :buz)) (require 'dash) (-some-> plist (plist-get :foo) (plist-get :bar) (plist-get :buz)) 更新は… えー、ここには書きたくないほどめんどくさいです。 読み取りについても、ここではプロパティリスト(plist)という記法を使っているのでplist-get関数を使ってい

            Emacs Lispでネストしたデータ構造へのアクセスを簡単に
          • Structure and Interpretation of Computer Programs, Comparison Edition

            The text of the original SICP 2nd edition is licensed by Harold Abelson and Gerald Jay Sussman under a Creative Commons Attribution-ShareAlike 4.0 International License (CC BY-SA). The text of the JavaScript adaptation is licensed by Harold Abelson, Gerald Jay Sussman, Martin Henz, and Tobias Wrigstad, also under CC BY-SA. The figures in the JavaScript adaptation are derived from figures created b

            • 自作言語でLLVM JITによるマクロが動くまで

              この記事は言語実装 Advent Calendar 2021の12日目の記事です。12日はとっくに過ぎているのですが、カレンダーが空いていたので書かせて頂きました。 自作言語llrlには、LLVM JITを用いたマクロ機能が備わっています。この機能の実装過程での課題を振り返ります。 以下の記事もご参照ください。 マクロの背景: llrlの概要 マクロに関連する機能を中心的に、llrl言語自身について紹介します。 llrlはLisp-likeな構文の自作プログラミング言語です。特に特定の用途に特化しているわけでもない汎用(general-purpose)プログラミング言語ですが、Lispのように、プログラムがS式で記述されるのが特徴的です。いくつか例を見てみます。 ; 関数定義は (function signature body ...) で行う (function (fibonacci-n

                自作言語でLLVM JITによるマクロが動くまで
              • LambdaLisp - A Lisp Interpreter That Runs on Lambda Calculus

                LambdaLisp is a Lisp interpreter written as an untyped lambda calculus term. The input and output text is encoded into closed lambda terms using the Mogensen-Scott encoding, so the entire computation process solely consists of the beta-reduction of lambda calculus terms. When run on a lambda calculus interpreter that runs on the terminal, it presents a REPL where you can interactively define and e

                  LambdaLisp - A Lisp Interpreter That Runs on Lambda Calculus
                • GitHub - kspalaiologos/malbolge-lisp: A lightweight (350MB) Lisp interpreter in Malbolge Unshackled, often dubbed the hardest turing complete programming language.

                  You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                    GitHub - kspalaiologos/malbolge-lisp: A lightweight (350MB) Lisp interpreter in Malbolge Unshackled, often dubbed the hardest turing complete programming language.
                  • #:g1: M式の魅力の無さについて

                    LispといえばS式ですが、S式について語られる際には大抵はM式も一緒に話題にのぼります。 M式は実際の所、正式な仕様は存在しないので処理系製作者が独自に拡張したものをM式としていたことが多いようですが、今回は、そんなM式の魅力の無さについて考えてみましょう。 魅力の無さ その1: 別に中置記法ではない 前置記法のS式を比較対象とするからか、M式は中置記法といわれますが、中置の文法ではっきり決まっていそうなのは関数定義のdefineの=/≡位と、conldで使われる→位で、あとは前置ですし、ユーザー定義の関数は前置です。 後のプログラミング言語のようにユーザーが中置の文法を定義し結合度を定義する、という機構もありません。 M式の構文自体は、当時のFORTRAN I的に書けたら良いのではないか、という程度の構想だったようですが、FORTRAN Iの構文自体がそれ程洗練されたものでもありません

                    • Lisp implementations

                      Tiger got to hunt, Bird got to fly; Lisper got to sit and wonder, (Y (Y Y))? Tiger got to sleep, Bird got to land; Lisper got to tell himself he understand. -- Kurt Vonnegut, modified by Darius Bacon

                      • Scheme to the Spec Part I: Concurrent Cycle Collection

                        by Matthew Plant Scheme to the Spec (in Async Rust) Scheme to the Spec is a series on the more complex, often overlooked aspects of programming language implementation. In this series we will dive deep into my work-in-progress implementation of R6RS scheme, scheme-rs, an implementation designed to integrate seamlessly with the async-rust ecosystem. Our first article discusses how to implement Garb

                        • The Shepherd 1.0.0 released! — 2024 — Blog — GNU Guix

                          Ludovic Courtès — December 12, 2024 Finally, twenty-one years after its inception (twenty-one!), the Shepherd leaves ZeroVer territory to enter a glorious 1.0 era. This 1.0.0 release is published today because we think Shepherd has become a solid tool, meeting user experience standards one has come to expect since systemd changed the game of free init systems and service managers alike. It’s also

                          • 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
                            • cakelisp

                              Cakelisp Cakelisp master repository Features Terms Building Cakelisp itself Linux MacOS Windows Building from Visual Studio Dependencies Building a project using Cakelisp Learning Cakelisp Tooling support Build systems Debugging Similar applications/languages This is a programming language where I can have my cake and eat it too. Cakelisp is a compiled language ideal for high performance, iterativ

                                cakelisp
                              • GitHub - abuseofnotation/termlisp: A lisp dialect based on pattern matching and term rewriting

                                You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                  GitHub - abuseofnotation/termlisp: A lisp dialect based on pattern matching and term rewriting
                                • GitHub - Shirakumo/trial: A fully-fledged Common Lisp game engine

                                  Trial is a game engine written in Common Lisp. Unlike many other engines, it is meant to be more of a loose connection of components that can be fit together as required by any particular game. Please note that the engine is still in flux. The project may change heavily as new constraints become clear. As such, there is no guarantee for API stability at this point. Documentation is available howev

                                    GitHub - Shirakumo/trial: A fully-fledged Common Lisp game engine
                                  • Common Lispの生みの親、スコット・ファールマン博士へのインタビュー

                                    PLDBより。 BY ハッサム・アルハジャジ はじめに 2022年11月11日 — スコット・ファールマン博士は、カーネギー メロン大学コンピュータ・サイエンス学部の名誉教授です。彼はコンピュータ・プログラミング言語の専門家であり、元祖ニューラル・ネットワークのジェダイマスターでもあります。彼はCommon Lisp言語のコア開発者の一人であり、現在は人工知能の研究を行っています。ファールマン博士は、謙虚な科学者であると同時に、非常に親切な人物です。また、インターネット初の顔文字(横向きの笑顔)の発案者でもあります :-) インタビュー ハッサム: Lispの優れたアイデアの中で、まだ主流になっていないものはありますか? ファールマン博士: Lispの自動ストレージ割り当てとガベージコレクションが主流になるには長い時間がかかりました。これは「巧妙」以上のものであり、最も微妙で発見や修正が困

                                      Common Lispの生みの親、スコット・ファールマン博士へのインタビュー
                                    • GitHub - ytakano/baremetalisp

                                      You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                        GitHub - ytakano/baremetalisp
                                      • Implementing Type Systems as Macros

                                        There’s a neat paper Type Systems as Macros by Chang, Knauth, and Greenman [1] that describes how to implement a typed language using an untyped host language and macro expansion. The paper is neat, but I found the code hard to follow—the paper uses a compact notation that’s convenient for print, but not so much for reproducing on one’s own. This post is my attempt to implement and explain in more

                                        • xorvoid

                                          As you can see, "quote" is the only form that requires special handling by the evaluator. Both "pop" and "push" can be implemented as ordinary built-ins. The syntax forms are not strictly required, but they make coding much more manageable. Thunking and Forcing () In Forsp, parenthesis grouping is used as a thunking operator. As an example: (foo bar) is the thunked-computation of: foo bar A thunk

                                          • C++のテンプレートでLISPを作った話

                                            C++のテンプレートでLISPを作った話 はじめに 1年半ほど前、C++のテンプレートでLISPを実装した (コード)。 C++コードの「コンパイル時」にLISPが動くというものだ。 実行時にはコンパイル時に作られた文字列定数を表示するだけだ。 どう作ったか覚えているうちに日本語の文章を書こうと思っていたのに、 すっかり時間が経ってしまいもはやほとんど覚えていないが、 完全に忘れてしまう前に何かしら書いておこうと思う。 超高速C++テンプレート入門 C++に詳しくない人向けにテンプレートのすごく雑な説明をする。 私自身C++に詳しくないので、多分に間違いが含まれているだろう。 C++に詳しい方は生暖かい目で見守ってほしい。 単純な型 C++の変数には型がある。 整数型の変数には整数しか代入できない。 文字列型の変数には文字列しか代入できない。 int n = 42; // 整数型の変数 s

                                            • FranzとLispの歴史

                                              IEEEXploreより。 フリッツ・クンツェ; ローレン・クンツェ 概要: 1984年、カリフォルニア大学バークレー校の比較的新しいコンピュータ・サイエンス学部で数学を専攻していた大学院生のフリッツ・クンツェは、数人の学生仲間と1人の教授とともにFranz社を設立した。彼らの使命は、人工知能やエキスパートシステムのアプリケーションに一時期世界で最も広く使われていたLisp(元々はLISP for LISt Processor)と呼ばれるプログラミング言語を商品化することだった。 今日、Lispはフリッツの言葉を借りれば「ドードーの道」を歩んでいるように見えるが、彼はLispの静かな復活が進行中であると主張する。しかし、現代風にアレンジすれば、人工知能(AI)の分野でグローバルな競争力を獲得する、またとない大きなチャンスになる。以下は、フリッツの娘であるローレン・クンツェが行ったフリッツへ

                                              • Hoot: Scheme on WebAssembly — Spritely Institute

                                                Hoot is a Spritely project for running Scheme code on Wasm GC-capable web browsers, featuring a Scheme to Wasm compiler and a full-featured Wasm toolchain. Hoot is built on Guile and has no additional dependencies. The toolchain is self-contained and even features a Wasm interpreter for testing Hoot binaries without leaving the Guile REPL. Try Hoot! Get Hoot! The latest release is v0.5.0. (signatu

                                                  Hoot: Scheme on WebAssembly — Spritely Institute
                                                • RubyとLispの切っても切れない関係 #heiseirubykaigi |にゃんだーすわん|pixivFANBOX

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

                                                    RubyとLispの切っても切れない関係 #heiseirubykaigi |にゃんだーすわん|pixivFANBOX
                                                  • Overview - Lisp interpreter in Rust

                                                    Overview The lisp-rs project implements an interpreter, in Rust, for a small subset of Scheme, a Lisp dialect. The main goal of this document is to make sure the reader understands the inner details of how the interpreter was implemented. The project was inspired by Peter Norvig's article (How to Write a (Lisp) Interpreter (in Python)) and the book Writing An Interpreter In Go. This document serve

                                                    • Štar: an iteration construct for Common Lisp

                                                      2024-05-15 :: programming, lisp Štar is a concise and extensible iteration construct for Common Lisp which aims to be pleasant to use, easy to understand, fast if needed, general, and not to look like Fortran. Common Lisp has multiple iteration constructs: mapping functions such as mapcar, special-purpose constructs such as dotimes and dolist, the general but somewhat clumsy construct which is do

                                                      • Kandria

                                                        Ever been caught backtracking for ages, trying to figure out where to go next? In Kandria there's no risk of that -- wherever you want to go, you can, right from the start. Following a narrow tunnel among the rubble you are lead to a large underground lake, brimming with rare fish. With your trusty sword-turned-fishing-rod, you'll have your encyclopedia filled out in no time. And better yet, with

                                                          Kandria
                                                        • Compiling a Lisp: Primitive unary functions

                                                          first – previous Welcome back to the “Compiling a Lisp” series. Last time, we finished adding the rest of the constants as tagged pointer immediates. Since it’s not very useful to have only values (no way to operate on them), we’re going to add some primitive unary functions. “Primitive” means here that they are built into the compiler, so we won’t actually compile the call to an assembly procedur

                                                            Compiling a Lisp: Primitive unary functions
                                                          • malでかんたんなテンプレートエンジンを書いてみた - Qiita

                                                            言語非依存なテンプレートエンジンがあったらいいなと昔からボンヤリ考えていた(切実にほしいという程ではない)のですが、mal(Make a Lisp)で作ったらどうだろうと思って試しにやってみました。「なんかやってみたくなってやってみた」系の記事です。 Lisp を書くのは年に数回という感じの人が書いていますので、拙いところは大目に見ていただければと思います。 ちなみに去年のアドベントカレンダーではこんなのを書きました。 できたもの sonota88/mal をサブモジュールとして使っているので、 git clone --recursive ... でクローンする必要があります。 Ruby版 Ruby 版だとこんな感じ。 template = <<TEMPLATE <h1>品目一覧</h1> <p>購入日: <%= date %></p> <table> <tr> <th>ID</th> <

                                                              malでかんたんなテンプレートエンジンを書いてみた - Qiita
                                                            • 謎の言語Forthが謎なので実装した

                                                              11. 謎の⾔語、Forth 2/5 典型的なForth の実装には、LISP におけるRead–eval–print loop(英語版)(REPL)に対応する、⼊⼒されたワードを即 座に実⾏する対話型のインタプリタモードと(これは、正規 のオペレーティングシステムがないシステム向けのシェルに も適している)、後の実⾏のために⼀連のワードをコンパイ ルするモードのふたつのモードがある。後者にはコロン(:) というワードにより遷移しセミコロン(;)というワードで脱 する。 ─ 『Forth』, Wikipediaより

                                                                謎の言語Forthが謎なので実装した
                                                              • Medley Interlisp Project

                                                                The Medley Interlisp Project a retrofuturistic software system What did we leave behind on the path to developing today's computer systems? Could there be lessons for the future of computing hidden in the past? Enter the Medley software environment to explore these questions. Welcome to the start of a new chapter in software preservation and computing. We're a group of researchers, software develo

                                                                • Lisp Compiler

                                                                  Introduction This page examines the earliest surviving Lisp compiler, written by Timothy Hart and Michael Levin around 1961. To avoid repetition of phrases like “the compiler”, we will use the abbreviation “HLC” (for “Hart–Levin Compiler”) to refer to it. The HLC was introduced in M.I.T. AIM-039 and documented more fully in the LISP 1.5 Programmer's Manual by McCarthy et al. For information about

                                                                  • SectorLISP Now Fits in One Sector

                                                                    Update: Please read our most recent SectorLISP v2 announcement: LISP with GC in 436 bytes The SectorLISP project has achieved its goal of creating a LISP that's tiny enough to fit in the master boot sector of a floppy disk. To the best of our knowledge, this is the tiniest LISP to date. Since a master boot record is only 512 bytes, that means LISP is now tied with FORTH to be the most lightweight

                                                                    • [PDF] Evolution of Emacs Lisp

                                                                      74 Evolution of Emacs Lisp STEFAN MONNIER, Université de Montréal, Canada MICHAEL SPERBER, Active Group GmbH, Germany Shepherd: Brent Hailpern, IBM Research, USA While Emacs proponents largely agree that it is the world’s greatest text editor, it is almost as much a Lisp machine disguised as an editor. Indeed, one of its chief appeals is that it is programmable via its own programming language. Em

                                                                      • Clojure from a Schemer's perspective | More magic

                                                                        Recently I joined bevuta IT, where I am now working on a big project written in Clojure. I'm very fortunate to be working in a Lisp for my day job! As I've mostly worked with Scheme and have used other Lisps here and there, I would like to share my perspective on the language. Overall design From a first view, it is pretty clear that Clojure has been designed from scratch by (mostly) one person wh

                                                                        • Lisp: Icing or Cake? — dthompson

                                                                          The Spring Lisp Game Jam 2024 ended one week ago. 48 games were submitted, a new record for the jam! This past week has been a time for participants to play and rate each other’s games. As I explored the entries, I noticed two distinct meta-patterns in how people approached building games with Lisp. I think these patterns apply more broadly to all applications of Lisp. Let’s talk about these patte

                                                                          • R5RSのformal semanticsをOCamlで書いた

                                                                            R5RSのformal semanticsをOCamlで書いた 背景 bitのバックナンバーを読んでいたら見つけた 「プログラム検証入門」という記事(1980年9月〜12月号掲載)が非常に面白かった。 その記事に参考文献として載っていた 「数理情報学入門―スコット・プログラム理論」という本を買ってみたら、 これまたすごく面白かった。 この本で使っている記号が、R5RSのformal semanticsで使っている記号と 大体同じであることを思い出し、R5RSのformal semanticsを読み直してみたら、 以前よりしっかり理解できて、これまた非常に楽しかった。 楽しかったのだが、 call-with-valuesの定義 がおかしいことに気づいた。 cwv: E* -> K -> C [call-with-values] cwv = twoarg(λε1ε2κ.applicate ε1

                                                                            • A rabbit hole full of Lisp

                                                                              At work I contribute to a moderately-sized monorepo at 70 thousand files, 8-digit lines of code and hundreds of PRs merged every day. One day I opened a remote buffer at that repository and ran M-x find-file. 💡️find-file is an interactive function that shows a narrowed list of files in the current directory, prompts the user to filter and scroll through candidates, and for a file to open. Emacs f

                                                                                A rabbit hole full of Lisp
                                                                              • WebAssemblyのgotoを妥協する

                                                                                WebAssemblyのgotoを妥協する 前回のあらすじ: WebAssemblyでgotoを作ろうとしたらめっちゃ大変。 (loop $loop (if (i32.gt_u (local.get $next) (i32.const 0)) (then (local.set $jump (local.get $next)) (local.set $next (i32.const 0)))) (block $block2 (block $block1 (br_if $block1 (i32.eq (local.get $jump) (i32.const 1))) (br_if $block2 (i32.eq (local.get $jump) (i32.const 2))) (call $code1) (if (call $test1) (then ;; Forward super jum

                                                                                • bug#70209: 30.0.50; describe key + lambda too poetic

                                                                                  unofficial mirror of [email protected] help / color / mirror / code / Atom feed* bug#70209: 30.0.50; describe key + lambda too poetic @ 2024-04-05 4:47 No Wayman 2024-04-05 5:07 ` No Wayman 0 siblings, 1 reply; 8+ messages in thread From: No Wayman @ 2024-04-05 4:47 UTC (permalink / raw) To: 70209 GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.41, cairo version 1.18.0) of 2

                                                                                  新着記事