並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 120 件 / 152件

新着順 人気順

lispの検索結果81 - 120 件 / 152件

  • BLisp: A Statically Typed Lisp Like Language

    BLisp is a statically typed Lisp like programming language which adopts effect system for no_std environments. BLisp supports higher order RPC like higher order functions of functional programming languages.

    • 作って覚えるOpenGLフレームワーク case study in Common Lisp

      [learnopengl](https://learnopengl.com/)のpdfを参照し、Common Lispに移植しながらOpenGLの作法やCommon Lispにおけるイディオムを手探りで構築していきます。

        作って覚えるOpenGLフレームワーク case study in Common Lisp
      • Schemeによる第一不完全性定理の実装 - 未完成な論を綴るブログ

        『知の限界』という本を買ったら第一不完全性定理をLispで実装する方法が載っていた。しかし、そのコードはSchemeでは動かないように思えたので、Schemeで実装をしてみた。不完全性定理では、コード中の引数に自身のコード渡して、自己言及的なゲーデル文Gを構成して証明するのだが、S式はコードもただのデータなので、こういうことが出来るのかと感心した。本書では、第一不完全性定理以外にも、不動点や停止問題のLisp実装も示されており、それらはここで示すコードと本書を読めばSchemeで実装可能に思う。 ただし、本書は面白いが、第一不完全性定理の説明などはほとんどないため、そもそも第一不完全性定理を知らない場合は、理解するのは難しそうではある。 知の限界[復刻改装版] (00) 作者:グレゴリー・J・チャイティンエスアイビー・アクセスAmazon Schemeによる再実装 Schemeで再実装した

          Schemeによる第一不完全性定理の実装 - 未完成な論を綴るブログ
        • Emacs 29 の Oclosure について

          もうすぐリリースされる Emacs 29 には、従来の閉包 に「型」と「スロット」を付加したオープン閉包 (open closure) 機能が導入されるので紹介します。 従来の Emacs Lisp では、定義された関数における変数の値は実行時に動的に参照されていました(動的束縛)。しかし、2011年にリリースされた Emacs 24 からは、字句束縛 が導入され、 lexical-binding 変数が t のときに定義される関数は、関数定義時の字句環境を記録する閉包に変換されます。 しかし、従来の閉包は、外部から観測や操作ができない、不透明なオブジェクトでした。 Emacs 29 で導入された「オープン閉包 (Open Closure)」は、閉包にCLOSと同様の型とスロットを定義し、必要に応じてスロットの値を変更したり、関数の型をチェックすることを可能にします。 以下にオープン閉包の

            Emacs 29 の Oclosure について
          • Renato Athaydes

            Revenge of Lisp (Part 1⁄2) Background vector created by upklyak - www.freepik.com This may surprise you if you know me, but I’ve been learning Common Lisp for a few weeks now. It all started when I was reading, funnily enough, a blog post about another, much more hyped, language called Julia. The post was titled Julia and the reincarnation of Lisp, and in it the author lamented that despite his lo

            • A Lisp REPL as my main shell

              If you enjoy this article and would like to help me keep writing, consider chipping in, every little bit helps to keep me going :) Thank you! Update: As of 2021-02-07, not all the code and configurations used in this presentation have been published. Should happen in the coming days, stay tuned! Introduction video The concepts I’m going to present in this article were featured in a presentation at

              • Lisp Game Jam - "Wireworld" - Hoot's low level Wasm tooling in action — Spritely Institute

                Lisp Game Jam - "Wireworld" - Hoot's low level Wasm tooling in actionChristine Lemmer-Webber — June 12, 2023 This blog post focuses on our second Spring Lisp Game Jam 2023 entry, wasm4-wireworld, an implementation of Wireworld on top of Hoot's lower-level assembly tools which are a part of our Guile → Wasm project to bring Spritely Goblins-powered distributed applications to the common web browser

                  Lisp Game Jam - "Wireworld" - Hoot's low level Wasm tooling in action — Spritely Institute
                • 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でネストしたデータ構造へのアクセスを簡単に
                    • GitHub - eliot-akira/waxolotl: A small language that compiles to WebAssembly Text format

                      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 - eliot-akira/waxolotl: A small language that compiles to WebAssembly Text format
                      • Embedding Scheme in Rust

                        Embedding Scheme in Rust Rust, as a compiled language, makes it challenging to modify the behavior of programs dynamically. In this article, we embed a small Scheme interpreter called Stak Scheme in Rust to dynamically change the behavior of a program without stopping the process. You can find the following codes in this article at the examples/hot-reload directory in the Stak Scheme repository. T

                        • 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
                          • Matt Roelle | Fennel: The Practical Lisp

                            04/08/2022 Fennel? Around 6 months ago, I discovered a little lisp called Fennel. It compiles to Lua, meaning it's extremely portable since Lua runs basically anywhere. Lua interop is seamless. It runs flawlessly on desktop, in the web, on mobile devices, gaming consoles and on microcontrollers to name a few. Lua is written in portable C code and embeddable by design, extending any game engine wit

                            • Dak Language

                              Play If you want to jump in and see what it looks like, explore the Dak Tour. Zen Full access to JavaScript. Be one with the host. No runtime. Participate in the ecosystem. Perfect is the enemy of good. Versions are infinite. Be useful today. Survive to thrive. Be fast. Stay fast. JavaScript is ubiquitous. It's ecosystem is diverse and populated. Dak attempts to provide a path to leverage and part

                                Dak Language
                              • Building interactive web pages with Guile Hoot — Spritely Institute

                                Building interactive web pages with Guile HootDave Thompson — November 30, 2023 A question we frequently hear in discussions about WebAssembly (Wasm) is: "Can Wasm call the DOM (Document Object Model) API?" The answer is: Yes, thanks to Wasm Garbage Collection! In this post, we will use Guile Hoot (our Scheme to Wasm compiler) to demonstrate how a language that compiles to Wasm GC can be used to i

                                  Building interactive web pages with Guile Hoot — Spritely Institute
                                • Directly compiling Scheme to WebAssembly: lambdas, recursion, iteration! — Spritely Institute

                                  Directly compiling Scheme to WebAssembly: lambdas, recursion, iteration!Christine Lemmer-Webber — May 30, 2023 It's been just over three months since we announced the Guile on WebAssembly project (codenamed Hoot). Since then we've brought on two fantastic hackers to develop the project and progress has been quick. We now are at the point where we have things to show: we can now compile various Sch

                                    Directly compiling Scheme to WebAssembly: lambdas, recursion, iteration! — Spritely Institute
                                  • Phel: A Functional Lisp Dialect for PHP Developers

                                    The Phel Language Phel is a functional programming language that compiles down to PHP. It's a modern Lisp dialect inspired by Clojure and Janet, tailored to bring functional elegance and expressive code to the world of PHP development. Join the Phel Developer Community Got questions? Want to chat about macros, tail recursion, or why parentheses are awesome? Swing by the Phel Gitter channel—we're f

                                      Phel: A Functional Lisp Dialect for PHP Developers
                                    • Andre's Blog

                                      Part 1 - Introduction In this post, you’ll learn how to build a lightweight Hindley–Milner type checker in Haskell. No advanced theory is required. We’ll apply it to a tiny, LISP-inspired language so you can focus on how inference works. Hindley-Milner inference may seem intimidating, but I believe that it is much more approachable than it first appears. Each concept is quite understandable. It is

                                      • From Common Lisp to Julia

                                        This post explains my reasoning for migrating from Common Lisp to Julia as my primary programming language, after a few people have asked me to elaborate. This article is the product of my experiences and opinions, and may not reflect your own. Both languages are very well designed, and work well, so I encourage you to do your own research and form your own opinions about which programming languag

                                        • Clojureを仕事で使うにあたって早めに押さえたい知識/技術

                                          Clojure言語を仕事で使いたい(もしくは使い始めた)という方向けに、Clojurianである私lagénorhynque🐬の実践と初学者指導/支援の経験から、主にWebサービス(バックエンド)開発において早期に習得すると捗りそうな知識や技術について簡単にまとめてみました。 はじめに: 基本的な考え方 プログラミング言語Clojureは2007年頃に登場した動的型付き関数型言語・JVM言語・Lispです。 2025年現在においても定番入門書として挙げられることが多いのは『プログラミングClojure 第2版』もしくはその原書最新版Programming Clojure, Third Editionと思われますが、仕事としてチーム開発でClojureを使うとなると 入門書でたいてい解説されていて実用上も重要な知識/技術 入門書で必ずしも扱われていないが実用上不可欠もしくは有用性の高い知識

                                            Clojureを仕事で使うにあたって早めに押さえたい知識/技術
                                          • 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.6.1. (signatu

                                              Hoot: Scheme on WebAssembly — Spritely Institute
                                            • EmacsWiki: Gcc Emacs

                                              GccEmacs refers to the --with-native-compilation configuration option when building Emacs, which adds support for compiling EmacsLisp to native code using libgccjit. All of the Elisp packages shipped with Emacs are native-compiled, providing a noticeable performance improvement out-of-the-box. Third-party packages are also compiled to achieve further performance improvements. The official developm

                                              • 世界のプログラミング言語(32) LISP系言語で実用的なWebアプリも作れるClojureScript

                                                今回紹介するClojure/ClojureScriptはLISP系の言語の一種です。シンプルでありながら実用性に重きが置かれており、JVMや.NET、JavaScript上で動かすことができます。そのため、LISPの良さを活かしつつ様々な環境でアプリ開発ができます。今回は特にClojureをJavaScriptに変換して実行できるClojureScriptを使う方法を紹介します。 ClojureでWebアプリを作ってみたところ ClojureとClojureScriptについて もともと、ClojureはJavaの仮想マシンであるJVM上で動くLISP処理系として2007年に開発されました。Javaの様々なAPIをサポートするJVMは非常に高機能であり、JVMで動くClojureは最初から多くの実用的な機能を利用できる言語でした。そして、Java仮想マシンのバイトコードにコンパイルされるた

                                                  世界のプログラミング言語(32) LISP系言語で実用的なWebアプリも作れるClojureScript
                                                • LisperはASTを直に書くのが楽しいという通好みな嘘

                                                  「LisperがASTを直に書くのが楽しいというのが理解できない」、「抽象構文木を直接操作するのを有り難がっているのがわからない」などという話は、たまにではありますが定期的に掘り返される話題です。 大体は、コンピュータサイエンス的に教養の高い人からの意見が多いようですが、パーザの研究に重きを置いている方だったり、具象構文の研究をしている方が多いようです。 そういう方々にはLispという存在は何か世の中の発展を阻害する何かに見えたりしているのかもしれません。 LispはASTを直に書いているわけではない 実際のところCSに精通している方々も別にLispだとASTを直に書くとは思っておらず、言葉の綾での表現なのが厄介ですが、Common Lispなども具象構文としてS式で記述しています。 Lispはデータでコードを書いている では、実際のところLispでは何が特徴的なのかといえば、データでコー

                                                    LisperはASTを直に書くのが楽しいという通好みな嘘
                                                  • LispText.pdf

                                                    Lisp Common Lisp / Scheme 0.1 Copyright c � 2020, Katsunori Nakamura 2020 2 29 1 1 1.1 Common Lisp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.3.1 Lisp . . . . . .

                                                    • Astronomical Calculations for Hard SF in Common Lisp

                                                      In The Epiphany of Gliese 581, a group of explorers search the mortal remains of a dead superintelligence. The expedition begins in Beta Pictoris—today an unremarkable blue star; in the story, a posthuman Dyson swarm civilization of quadrillions—then passes through Gliese 581, and ends where it started. I wanted to build a timeline of the story, and, because this is hard science fiction, this mean

                                                        Astronomical Calculations for Hard SF in Common Lisp
                                                      • REPL駆動プログラミングについて

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

                                                          REPL駆動プログラミングについて
                                                        • Janet for Mortals

                                                          Hello and thank you for coming to my book. I want to tell you about Janet, because I think that Janet is a very good language and it’s a shame that you haven’t heard of it yet. I like Janet so much that I wrote an entire book about it. Look: Wow! Look at all those chapters. Just like a real book. This isn’t one of those chapters yet, though. This is the before part. If this were a real book, which

                                                          • Cirkoban: Sokoban meets cellular automata written in Scheme — Spritely Institute

                                                            Cirkoban: Sokoban meets cellular automata written in SchemeDave Thompson — June 3, 2024 Last week, we released a small puzzle game called Cirkoban. Cirkoban is the very first publicly accessible application developed by Spritely that features the Goblins distributed programming library running in web browsers. We bet big on Hoot, our Scheme-to-WebAssembly compiler, a little over a year ago in orde

                                                              Cirkoban: Sokoban meets cellular automata written in Scheme — Spritely Institute
                                                            • 10行LISP評価器の実装例(各言語まとめ) - Qiita

                                                              [[["lambda",["u"],["u","u"]], ["lambda",["u"], ["lambda",["n","a","b"], ["if",["=","n",0],"a", [["u","u"],["-","n",1],"b",["+","a","b"]]]]]], 21,0,1] 評価器の大まかな流れ $ev$:評価器関数名,$s$:実行コード(リスト構造),$e$:環境(初期値は空リスト),$g$:大域環境 $pm(k, v)$:文字列リストと値リストからの環境生成,$ap(x, y)$:$x$を優先検索とする環境合成 $ev(s,e)=$ $s$が文字列ならば,$ap(e,g)$から$s$に対応する値を返す. $s$が整数ならば,$s$をそのまま返す. $s_1$がifならば,$ev(s_2,e)$が真の時$ev(s_3,e)$を返し偽の時$ev(s_4,e)$を返す

                                                                10行LISP評価器の実装例(各言語まとめ) - Qiita
                                                              • ハッカーと画家 / jmuk - Message Passing

                                                                そもそもあんまりそういう助言というものをもらった記憶がないなあ。人の話を聞かないタチで聞き流していたのかもしれないが。 英語で書くか、日本語で書いてから翻訳するか 英語よりも日本語……という話で思い出したけど、大学院生のとき、英語で文章(論文とか)を書くときの指導として「なるべく最初から英語で書いてなれたほうがいい」という指導と、「日本語でまず書いてみて論理構成を検証するべし。それから英語に訳すといい」という指導があるようにおもう。で、自分はわりと後者を聞かされていたが、これは誤りだった……というと語弊があるが、自分には合わなかったな、という結論をえた。 後者の意図はわからなくもない。構成がしっかりしているか、話の理路がたっているか、をただしく検証するべし、というのはただしいし、英語が苦手な状況でいきなり書き始めても語学力の低さに足を引っ張られてそういうことがうまくできないことがある、とい

                                                                  ハッカーと画家 / jmuk - Message Passing
                                                                • Common Lisp for shell scripting - simonsafar.com

                                                                  ... let's use SBCL instead of bash!. Objective Shell scripts are... just programs. Written in a rather ugly programming language, that was nevertheless designed to be as similar to actual UNIX command invocations as possible (given how it is actual UNIX command invocations for the most part). Using any other language (e.g. Python) definitely comes with some downsides: if most of what you're doing

                                                                  • Scheme in Scheme on Wasm in the browser — Spritely Institute

                                                                    Scheme in Scheme on Wasm in the browserDave Thompson — December 15, 2023 Hey, folks! Today we want to talk about the wonderful read-eval-print-loop (REPL). Thanks to WebAssembly (Wasm), it's becoming increasingly common for programming language websites to embed a REPL in which passersby can easily evaluate code and get a feel for the language without having to install anything on their computer.

                                                                      Scheme in Scheme on Wasm in the browser — Spritely Institute
                                                                    • 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
                                                                      • 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
                                                                        • 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によるマクロが動くまで
                                                                            • 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

                                                                              • #:g1: M式の魅力の無さについて

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

                                                                                • 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

                                                                                  新着記事