首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Notepad ++中编译lisp/scheme

在Notepad++中编译和运行LISP或Scheme程序,您需要安装第三方插件,如CLISP或Racket

  1. 首先,下载并安装Notepad++(https://notepad-plus-plus.org/downloads/)。
  2. 下载CLISP或Racket:
    • CLISP: 访问http://clisp.sourceforge.net/并下载适用于您操作系统的最新版本。
    • Racket: 访问https://racket-lang.org/download/并下载适用于您操作系统的最新版本。
  3. 安装CLISP或Racket:
    • CLISP: 解压下载的文件并将其放在一个合适的文件夹中,例如C:\Program Files\CLISP
    • Racket: 运行安装程序并按照提示进行操作。
  4. 配置Notepad++:
    • 打开Notepad++,然后转到"插件" > "插件管理" > "Show Plugin Manager"。
    • 在"Available"选项卡中,搜索"Python Script"并安装它。
    • 重启Notepad++。
  5. 安装LISP/Scheme支持插件:
    • Python Script插件安装完成后,重启Notepad++。
    • 转到"插件" > "Python Script" > "New Script",然后将其命名为"LISP_runner.py"。
    • 打开"LISP_runner.py",然后将以下代码粘贴到其中:

对于CLISP:

代码语言:javascript
复制
import sys
import os
import subprocess

def run_lisp(script_path):
    clisp_path = r'C:\Program Files\CLISP\2.49\bin\clisp.exe' # 请根据您的CLISP安装路径进行修改
    script_dir = os.path.dirname(os.path.abspath(script_path))
    subprocess.call([clisp_path, '-q', '-c', '(load "{}")'.format(script_path)])

if __name__ == '__main__':
    if len(sys.argv) > 1:
        run_lisp(sys.argv[1])
    else:
        print("Please provide a Lisp script file.")

对于Racket:

代码语言:javascript
复制
import sys
import os
import subprocess

def run_scheme(script_path):
    racket_path = r'C:\Program Files\Racket\racket.exe' # 请根据您的Racket安装路径进行修改
    script_dir = os.path.dirname(os.path.abspath(script_path))
    subprocess.call([racket_path, script_path])

if __name__ == '__main__':
    if len(sys.argv) > 1:
        run_scheme(sys.argv[1])
    else:
        print("Please provide a Scheme script file.")

确保将上述代码中的CLISP或Racket路径更改为实际的安装路径。

  1. 保存"LISP_runner.py"。
  2. 在Notepad++中编写LISP或Scheme代码,然后按F5运行。这将使用CLISP或Racket解释器运行您的代码。

注意:此方法仅适用于简单的LISP/Scheme代码执行。对于更复杂的项目,建议使用专门的集成开发环境(IDE)。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 在Windows 11中NotePad3的安装和配置详细教程

    摘要 在本篇博客中,我们将详细探讨在Windows 11操作系统上安装和配置NotePad3的完整过程。NotePad3作为一个轻量级、高效的文本编辑器,它不仅适用于程序员和开发者,还适合日常使用。...今天,我们将一起探索如何在Windows 11系统中顺利安装并配置NotePad3。作为一名技术博客作者,我一直致力于将复杂的技术简化,让每一个跟随我的读者都能轻松掌握。...高级设置:探索选项菜单中的高级设置,例如字符编码、行结束符格式等,以优化编辑体验。 插件安装:安装如拼写检查、自动完成等插件,增强编辑功能。 5....A2: 通过导出设置在选项 > 配置设置中进行备份。 小结 通过本文,你应该已经掌握了在Windows 11上安装和配置NotePad3的全部步骤。...注意事项: NotePad3和NotePad++ 都不支持Mac系统!

    2.3K00

    在sublime中安装sass编译插件

    打开sublime,在preference选项下有没有package control这个选项,如果没有的话,就表示你没有Package Control 插件(一个方便 Sublime text 管理插件的插件...to finish installation') 完成了这步之后,再重新打开我们的sublime,ctrl+shift+p,并输入install 选择第一个Install Pacage, 在命令栏中输入..."Sass"然后回车,然后在弹出的列表中选择Sass插件,通过鼠标单击或者回车进行安装,可通过左下角状态栏查看安装结果 在命令栏中输入"SassBuild"然后回车,然后在弹出的列表中选择SassBuild...这是你把scss文件写完之后,按ctrl+b就可以实现sass文件的编译了,他会生成一个自动编译生成css文件。(最好把sass放在c盘,否侧编译不出来,亲测)

    77510

    手动在Linux中源码编译安装httpd

    2.如果你是在大公司做运维的话,为了服务器系统的安全,你不可能轻易去网上下载RPM包安装的,因为别人可能恶意的注入木马后门什么也不是不可能的,所有为了安全期间,还是要自己手动进行编译安装的。...大概有多少种编译器呢,我们可以在使用yum groupinfo Development tools 进行包组的查看了。...2.下载httpd源码包 在网上找到源码的地址,如图所示: 复制链接地址后,进去xshell中在命令行中输入: wget 链接地址,下载下来的源码包就存在你当前的路径下。...我们在编译之前还需要定义一下,对当前程序编译时启用哪些特性或者功能,已经自定义安装路径等等。包中的 configure 脚本就是用来设置的,说到这里有必要让大家对这个编译前的设定做一个更深入的介绍。...中输入程序的时候,好让shell能够找到我们的源程序的位置来进行启动。

    1.6K10

    从 Microsoft 加入 OpenJDK 项目说起

    容器化,全面 Kubernates 服务,快速在 SQL Server 产品熔入大数据,人工智能的组件,使得自己在信息时代并没有落后太多。我相信他会越走越好。...嘴里说着不够开放,而我们自己却老是固守成规,圈里泛滥着编程语言鄙视链: 编程语言的: asm → C ↔ C++ ↔ Java ↔ C# → JavaScript → VB → VBScript Common Lisp...↔ Scheme → Emacs Lisp →→ Python Python ↔ Perl → shell PHP → all 操作系统的: Unix → Linux → Windows → DOS...++ → notepad all → Source Insight → notepad IDE的: Emacs + plugins ↔ Vim + plugins → 其他加插件的编辑器 IntelliJ...我也经常观察,平时工作,生活中那些看上去非常不友善的朋友,时而尖叫,时而沉默的可怕,时而怒摔键盘,时而细声细语,有些满腹牢骚,有些整天抱怨,这些负能量的朋友,其实就是心态单一,容不下主观以外的人和事,搞得气氛很尴尬

    67710

    CGAL的编译以及在VS中的使用

    CGAL的编译以及在VS中的使用 在被CGAL长久的折磨了两三周 在学习过程中有好几次库都出现了问题 所以打算重新更换一下版本 CGAL可以说是学习这么久以来见过最离谱(ex)的环境配置,期间出了好几次问题...(这部最好做完整) cmd+r 进入命令行 cd到boost的文件夹内 在该目录下运行bootstrap.bat 运行后会产生不b2.exe等文件 Boost非常大 建议只编译CGAL需要的依赖库 b2...中使用CGAL库 CMake build 如图继续进行Configue和Generate操作 然后检查一下CGAL文件夹目录中是否有build文件夹 接下来打开生成的CGAL.sln文件 在debug...\include\CGAL(编译生成CGAL的include目录) 在VC++目录的的库目录中添加: D:\compile\cgal\build\lib(编译生成CGAL的库目录) D:\compile...\cgal\auxiliary\gmp\lib(gmp的库目录) D:\local\boost_1_71_0\libs(boost的库目录) 在链接器的输入中添加: libgmp-10.lib libmpfr

    64420

    各种编程语言对尾递归的支持

    这里,可以采用一个编译技术,就是尾递归优化,其一般情况是,如果一个函数的计算中遇到了完全转化成另一个函数调用的情况,那么栈的当前函数部分的信息可以完全抹去,而替换为新的函数。...Common Lisp   测完Scheme,再来测Scheme的本家兄弟,另外一种Lisp——Common Lisp   先用Common Lisp实现add,因为Common Lisp将数据和过程用不同的命名空间...但是似乎也改变了Lisp的味道,do显然此处只能在设计编译器、解释器的时候就得单独实现,虽然按理Lisp下这些都应该是宏,但是无论用宏如何将函数式编程映射为显示的迭代,因为尾clisp递归优化不支持,则无法和系统提供的...sbcl是Common Lisp的另外一个实现,在这个实现中,我们使用第一个add函数的版本,没有发生崩栈。...看来,至少参考了Scheme的尾递归优化。 Ruby   Ruby的作者松本行弘也是Lisp的粉丝,当然,我想大多数编程语言的作者都会是Lisp的粉丝,因为它会给人很多启发。

    2.7K20

    SCIP学习笔记

    SCIP分五章:构造过程抽象,构造数据抽象,模块化、对象和状态(涉及并发),源语言抽象,寄存器机器里的计算(编译器如何工作) 环境 OS X下使用IDE DrRacket及其语法插件#PLaneT neil...sicp.plt 在文件头使用 #lang planet neil/sicp 声明语言类型 ?...Lisp基本语法 Lisp的原始定义在John McCarthy1960发表的论文[3]。 Lisp[4]是一个语言族,包括Common Lisp和Scheme,二者区别见[5]。...应用序求值:先求值参数而后应用,通过替换去模拟,避免重复求值 (Scheme使用) ### 条件表达式 ``` scheme (cond ( ) ( ) ......构造数据抽象 闭包 (这里指的不是匿名函数) 是在处理符合数据中的一个关键思想:用于组合数据对象的粘合剂,不但能用于组合基本的数据对象,同样也可以用复合数据的对象。

    1.6K40

    【Rust日报】Luminal:在 Rust 中编译快速 GPU 内核

    它也是一个演示piccolo及其独特之处,并且博客文章上有一些示例供您在实时 REPL 中尝试。 Luminal:在 Rust 中编译快速 GPU 内核 大家好!...几个月前我发布了有关 Luminal 的文章,从那时起我们在CUDA 和 Metal 编译器方面取得了重大进展。...这些内核编译一次并运行多次,并且由于整个计算图在编译时已知,因此我们可以非常积极地进行内核优化。 我们正在添加更多功能(autograd 已在几周前上线,因此现在可以进行培训!)...Maelstrom 可以作为货物测试的直接替代品,因此在大多数情况下,它都能正常工作。 这是可靠的。...Maelstrom 在自己的轻量级容器中密封地运行每个测试,消除了由测试间或隐式测试环境依赖性引起的混乱错误。 它是可扩展的。Maelstrom 可以作为集群运行。

    18110

    在Visual Studio2013中编译使用libcurl库

    本文主要介绍如何在Visual Studio 2013开发环境中编译并使用libcurl库。...2、使用Visual Studio 2013编译libcurl源代码 在自己的Windows系统上安装好Visual Sutido 2013之后,并且下载好libcurl的最新源代码后,就可以开始在Visual...至此在Visual Studio 2013中生成了一个VC++控制台的空项目,如下图所示: ?...下面在VS2013中加入我们刚才编译好的libcurl库 在VS2013左下角的【属性管理器】->【Debug|Win32】,右键单击【Debug|Win32】,选择【属性】,进入到【Debug属性页对话框...添加libcurl的debug动态库目录 依次选择【Debug属性页】->【链接器】->【常规】,在附加库目录中添加刚才编译好的lib库所在目录,如D:\env_build\libcurl_vs2013

    5.3K20

    因为对Perl和Python不满?圣诞节无聊?编程语言的出现都这么随意吗?

    但是这种想法遭到了当时 Lisp 程序员的反对,最后麦卡锡开了 MIT,从此 Lisp 的语法凝固在 S 表达式上。 Lisp 建立在列表和 lambda 演算和基础上,是函数式编程的鼻祖。...极简主义:Scheme Scheme 作为一种 Lisp 方言,同样诞生在 MIT,时间是 1975 年。 Scheme 第一个引入词法作用域,延续体,闭包等概念。并将数据和函数等同对待。...在 Smalltalk 中,所有数据都是对象:消息的发送者,消息的接受者,消息,消息的结果…。对象的类型是类。类中可以定义方法,属性等。 A.18....PHP 和 JavaScript 的语发相似,都是嵌入在 HTML 中,只不过一个在服务器端,一个在浏览器端。 A.28....CLR 运行 IL 和 JM 运行 Java 一样,只不过 CLR 将 IL 编译成机器指令,然后在由计算机直接执行,而 JM 是将 Java 编译成字节码,然后由解释器解释执行。.

    1.7K60

    非局部静态数据在多编译单元中的窘境

    静态数据包括: 在namespace内定义的名字空间域变量 √ 在类中被声明为static的类域变量 √ 在函数中被声明为static的局部静态变量 × 在文件中被定义的全局变量(不管有没有static...而编译单元指的就是*.o文件,假如一个工程是由n个单独的cpp和对应的头文件,那么就会被事先编译生成n个*.o文件,有时候我们将这些*.o文件称为目标文件,它们作为生成最后的统一可执行文件,也被称为编译单元...综上所言,本文的标题的含义是:如果在多文件中,分别定义了多个静态数据(不含局部变量),那么他们之间的相互依赖关系将会出现微妙的窘境。 什么窘境呢?...事情是这样的,由于静态数据会在程序运行开始时刻进行初始化(不管是指定初始化,还是系统自动初始化),并且C++标准没有规定多个文件中的这些静态数据的初始化次序,这就会带来一个问题:如果非局部静态数据相互依赖...BMW.startup(); // 使用car对象 } 很快,Rose的代码便会遇到灾难性的后果,因为C++编译时无法保证在MF对象初始化之时,汽车对象BMW究竟有没有初始化完毕。

    79420
    领券