Common lisp:有没有一种不那么痛苦的方法来输入数学表达式?

2024-01-29

我喜欢 Common lisp,但有时输入简单的数学表达式真的很痛苦

a(8b^2+1)+4bc(4b^2+1)

(当然我可以转换它,但是有点慢,我先写 (+ () ()),然后在每个括号中写 (* () ())...)

我想知道这里是否有人知道更好的输入方法。我正在考虑编写一个数学宏,其中

(math “a(8b^2+1)+4bc(4b^2+1)”) 

扩展到

(+ (* a (1+ (* 8 b b))) (* 4 b c (1+ (* 4 b b))))

但是对于名称很长的变量来说,解析是一个问题。

有人有更好的建议吗?


有用于此目的的读取器宏。

See: http://www.cliki.net/infix http://www.cliki.net/infix

例如:

CL-USER 17 > '#I(a*(8*b^^2+1)+ 4*b*c*(4*b^^2+1) )
(+ (* A (+ (* 8 (EXPT B 2)) 1)) (* 4 B C (+ (* 4 (EXPT B 2)) 1)))

'是通常的报价。#I( some-infix-expression )是阅读器宏。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Common lisp:有没有一种不那么痛苦的方法来输入数学表达式? 的相关文章

  • 为什么 eval 是邪恶的?

    我知道Lisp和Scheme程序员通常会这么说eval除非绝对必要 否则应避免 我已经看到了对几种编程语言的相同建议 但我还没有看到反对使用的明确论据列表eval 在哪里可以找到使用潜在问题的说明eval 例如 我知道以下问题GOTO在过程
  • Common Lisp 格式中可重复的差一问题

    I have format s tabs VT根据是否换行而表现不同 位于行首或行尾 我想知道为什么 不同之处在于 当换行符位于行尾时 行中似乎有一个额外的空格仅一审制表位的 下面举例说明 示例中唯一的区别在于格式控制字符串 它是 A VT
  • 更改命名空间前缀 WCF 信封

    我想知道是否可以更改 WCF SOAP 请求的命名空间前缀 正如您在下面的示例中看到的 The Envelope 的命名空间为 http www w3 org 2005 08 addressing 前缀为 a 我想将其更改为 foo 我怎样
  • Common lisp:有没有一种不那么痛苦的方法来输入数学表达式?

    我喜欢 Common lisp 但有时输入简单的数学表达式真的很痛苦 a 8b 2 1 4bc 4b 2 1 当然我可以转换它 但是有点慢 我先写 然后在每个括号中写 我想知道这里是否有人知道更好的输入方法 我正在考虑编写一个数学宏 其中
  • Common Lisp 中的动态和词法变量

    我正在读 Peter Seibel 的 Practical Common Lisp 一书 在第 6 章 变量 部分中 词法变量和闭包 和 动态 又名特殊变量 http www gigamonkeys com book variables h
  • Lisp 中无重复数字的随机列表

    我有这个函数可以创建一个包含其他问题中的初始元素的列表Lisp 中带有初始元素的列表从 99 开始到 0 https stackoverflow com questions 59039638 list with initial elemen
  • 以列表作为参数的 defun

    我正在尝试选择 Lisp 作为我的新语言 但我在解决如何让函数的一部分作用于传递给它的列表的每个元素上时遇到了一些问题 为了学习如何解决这个问题 我试图编写一个相当基本的除法形式 当列表的一个元素为 0 时不会发出声音 而是只返回 0 de
  • Common Lisp:如何使用条件拼接在宏中构建列表?

    我们假设 defmacro testing optional var list this is when consp var a list 当被调用时 gt testing 2 THIS IS gt testing list 1 2 THI
  • Common LISP 和 Stack 中的数字类型边界在 GHCI 中流动

    第一个问题 Common LISP 和 Haskell 的新手 请友善 我在 Common LISP 中有一个函数 下面的代码 旨在判断三角形的面积是否是整数 整数 defun area int p a b c let s a b c 2
  • SBCL:将 Hunchentoot 应用程序部署为可执行文件

    我开始使用 SBCL Common Lisp 并希望使用 Hunchentoot 开发一个小型 Web 应用程序 为了便于部署 我计划使用 sb ext save lisp and die 将所有内容保存在二进制文件中 因为我可以忍受大输出
  • common lisp:宏如何使用以编程方式生成的名称定义其他方法/宏?

    我意识到我的代码的某个部分由看起来相似的方法组组成 就像我有多个三重奏 一个由程序员的其他两个函数调用的辅助函数 我正在尝试编写一个宏来为我定义这三个函数 以便我所需要做的就是调用该宏 但我的尝试导致 defun 和函数调用将引用字符串而不
  • 如何从字符串创建关键字符号? [复制]

    这个问题在这里已经有答案了 从字符串创建符号非常简单 intern test gt test 我正在努力创造keywordplist 的符号 寻找类似的东西 XXXX test gt test 注意 intern test 不产生keywo
  • LISP - 小数点后的数字

    有谁知道如何在 Lisp 中指定浮点数小数点后的位数 假设我在 REPL 上打印此命令 CL USER 3 gt format t 15f float 1 7 I get 0 142857150000000 但是该数字四舍五入到小数点后第
  • LISP:关键字参数,提供-p

    目前我正在学习 Peter Seibel 的 Practical Common Lisp 在 实用 一个简单的数据库 一章中 http www gigamonkeys com book practical a simple database
  • 在 OSX 上编译 clisp-2.49:未找到 LIBFFI

    TL DR Even if libffi似乎已安装 configure即使我给它添加 正确的 前缀 脚本也找不到它 这篇文章的最后一部分 是我陷入困境的地方 我仅提供其他信息来解释我如何到达那里 我对这篇长篇文章表示歉意 如果有些内容与您无
  • Common Lisp 重新启动到条件绑定

    我在空闲时间学习 Common Lisp 并对条件系统有疑问 当我们在 common lisp 中处理错误时 我们在处理程序中指定错误类型来确定要处理哪个错误 在引发和处理错误之间 我可以进行一些重新启动 例如使用 restart case
  • 在 Parenscript 中使用 regex(正则表达式)

    我正在尝试 Parenscript 在尝试使用正则表达式函数时 我得到了意外的输出 例如 参考手册 https common lisp net project parenscript reference html shows regex f
  • LISP 中的变量和符号有什么区别?

    从范围上来说 内存中的实际实现 语法 例如 if let a 1 a 是变量还是符号 约尔格的回答指出了正确的方向 让我补充一点 我将讨论与 Common Lisp 类似的 Lisp 作为数据结构的符号 符号是 Lisp 中真实的数据结构
  • let* 和 set 之间的区别?在 Common Lisp 中

    我正在从事一个基因编程爱好项目 我有一个函数 宏设置 当以 setq setf 形式评估时 将生成一个如下所示的列表 setq trees make trees 2 gt x abs x 然后它将绑定到 lambda 函数
  • 宏扩展可以包含(声明...)表达式吗?

    Common Lisp Hyperspec 规定 宏形式不能扩展为声明 声明表达式必须显示为它们引用的形式的实际子表达式 我对 扩展到 的含义感到困惑 由于显而易见的原因 如下宏将不起作用 defmacro optimize fully d

随机推荐

  • 如何获得多维数组中的唯一值

    我在溢出和谷歌上做了很多查找 但没有一个结果适合我的具体情况 我有一个名为 holder 的占位符数组 值如下 Array 0 gt Array id gt 1 pid gt 121 uuid gt 1 1 gt Array id gt 2
  • ui:repeat 内的 selectManyCheckbox 集合知道它属于转发器的哪个元素

    我正在使用 JSF 2 开发一个 Web 应用程序 我的网络应用程序除其他外还包含一系列问题 一次提出一个问题 因此一次可以看到一个问题 并且有多个答案 我使用 h selectManyCheckbox 我将问题和可能的答案存储在 Arra
  • 如何使 Bootstrap 4 卡组每行宽度相同?

    我使用卡片组每行显示 4 张卡片 div class row div class card deck div class card img class card img top img adjusted div class card bod
  • 使用 Powershell 的 .csproj 文件中特定节点中的节点列表

    我想寻求一些帮助 因为我完全迷失了 我想检查 csproj 文件特定部分中的节点是否包含正确的数据 在下面的 xml 片段中 我想取回 PropertyGroup 下属于 Debug x64 配置文件的 title 的值 csproj 文件
  • 在 zsh 中安装 npm 后找不到命令

    我在安装时遇到一些问题vows http vowsjs org通过 zsh 中的 npm 这是我得到的 我尝试使用和不使用 g 选项安装它 你知道这里出了什么问题吗 Desktop sauce node demo master npm in
  • 如何显示合并提交中所做更改的差异?

    当我编写一堆代码时 我没有意识到我正处于合并过程中 现在git log p不会向我显示此更改的差异 它作为合并提交自动提交 我怎样才能让它显示在我的日志差异历史记录中 有点令人失望的是 Git 没有向您显示用于合并的补丁 p 部分原因是由
  • 如何正确更改 Microsoft Azure 中的 SSH 端口?

    我有一个基于 Ubuntu 14 04 LTS 的虚拟机 用于测试 而不是生产服务器 Azure 上默认打开默认 SSH 端口 22 我想将其更改为 12131 我编辑了 SSH 配置文件并将端口更改为 12131 然后通过以下方式重新加载
  • 集成陀螺仪和加速度计读数[重复]

    这个问题在这里已经有答案了 可能的重复 结合陀螺仪和加速度计数据 https stackoverflow com questions 1586658 combine gyroscope and accelerometer data 我读过很
  • 使用 Python 查找单词列表的字谜

    假设我有一个字符串列表 例如 car tree boy girl arc 等等 我想在该列表中找到字谜组 在这种情况下 car arc 我尝试编写代码来循环列表并比较字符串对 但如何解释字母可以采用不同顺序的事实 For the speci
  • 从数据库创建 Grails 域类

    我想从现有数据库创建 grails 域类 通常我是从域类创建数据库 现在我需要从现有数据库模式创建它 如果有可用的命令 请帮助我 我遇到了同样的问题 我发现这个 Grails 插件 https web archive org web 201
  • PHP 解析 XML 时出错(RSS 提要)

    我正在使用基于的 PHP 类在这个答案中找到的 https stackoverflow com questions 250679 best way to parse rss atom feeds with php解析五个 RSS 提要 五人
  • 关闭模态视图

    如果我没记错的话 模态视图必须从父视图中消除 而不是从模态视图本身中消除 在我当前的项目中 我有两个模式视图 在第一个中 我将数据传递给父视图 当数据传递到父视图时 执行dismiss 现在 我有另一个模态视图 它不将数据传递给父视图 所以
  • 处理 WebBrowser 控件上的按键事件?

    目前我正在使用一个可以播放的应用程序ppt并在 WebBrowser 控件中闪烁 在 WebBrowser 中 我可以使用隐藏上下文菜单 this IsWebBrowserContextMenuEnabled false 并使用捕获关键事件
  • 如何捕获 Sequelize 连接错误

    如果存在续集连接错误 如何捕获续集连接错误 我尝试做 var connection new Sequelize db uri connection on error function perhaps reconnect here 但显然这不
  • Akka Stream 和 Kamon-Prometheus 不返回任何指标,但加载空页面

    我尝试将 kamon prometheus 与 akka Stream 项目集成 但在http 本地主机 9095 http localhost 9095 它加载一个空页面 在控制台中 我可以看到一条消息 表明指标信息可在http 本地主机
  • 在 Windows 上使用 HDF5 库和 CMake(错误:“无法找到 HDF5”)

    我想在我的 C 程序中使用 HDF5 库 我在Windows 7上使用VS 2010 x64编译器和CMake 3 8 0rc2 我安装的HDF5版本是1 8 10 通过运行官方 安装程序 安装 在我的 CMakeLists 文件中 我添加
  • 如何在 Laravel 中执行 MYSQL 查询?

    我有一个 MYSQL 查询 我想在 laravel 中执行这个查询 select d1 update id from select update id count update id as ct from updates tags wher
  • 为什么 GCC 说“不再支持命名返回值”?

    我不小心将函数定义的左大括号放在 return 语句之后 int id int k return k 但 GCC 回答了一个奇怪的错误消息 错误 不再支持命名返回值 谁能解释一下这个奇怪的功能可能是什么 我从来没有听说过 See here
  • 编程中的“阻塞”是什么意思?

    有人可以提供外行定义和用例吗 阻塞 意味着调用者等待 直到被调用者完成其处理 例如 来自套接字的 阻塞读取 会等待 直到有数据返回 非阻塞 读取不会 它只是返回是否有读取的指示 通常是计数 您听到这个术语主要是围绕 API 来访问不一定需要
  • Common lisp:有没有一种不那么痛苦的方法来输入数学表达式?

    我喜欢 Common lisp 但有时输入简单的数学表达式真的很痛苦 a 8b 2 1 4bc 4b 2 1 当然我可以转换它 但是有点慢 我先写 然后在每个括号中写 我想知道这里是否有人知道更好的输入方法 我正在考虑编写一个数学宏 其中