为什么 LISP 中符号名称中的连字符是约定俗成的?

2024-05-06

这个推荐的理由是什么?为什么不与使用下划线的其他编程语言保持一致?


我认为 LISP 使用连字符有两个原因:“历史”和“因为你可以”。

History

LISP 是一种古老的语言,在早期输入下划线可能会很困难。例如,我用于 LISP 的第一个终端是ASR-33 电传打字机 http://en.wikipedia.org/wiki/ASR-33_Teletype。在某些主机和电传打字机型号上,下划线字符的按键序列将被解释为向左箭头(Smalltalk 中的赋值运算符)。连字符可以更可靠地键入。

因为你能

在 LISP 中,没有中缀运算符(嗯,很少)。因此,关于是否x-1表示“x 减 1”或“x 连字符 1”。早期的先驱者喜欢多字符号的连字符的外观(或者也被困在 ASR-33 上:)。

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

为什么 LISP 中符号名称中的连字符是约定俗成的? 的相关文章

随机推荐

  • 在 Spark-submit 上的 _find_and_load 中获取文件“”,第 991 行

    我目前使用的是Python 3 7 9 spark spark 2 4 6 bin hadoop2 6 在这个项目 venv 中 我的设置为 kafka python 2 0 2 pip 21 2 4 py4j 0 10 9 pyspark
  • 未捕获的类型错误:emit 不是 vue3 中的函数

    当我在 vue 3 设置代码块中编写此代码以获取输入值时 请遵循此answer https stackoverflow com questions 66737918 how to use v model on component in vu
  • Kendo 有 GUI 设计师吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Kendo 有没有像 Sencha Architect for Ext JS 这样的控件布局设计工具
  • IMAP 同步

    我正在实现 IMAP 客户端 但 IMAP 邮箱同步存在问题 首先 可以从 IMAP 服务器获取新邮件 但我不知道如何从邮箱中查找已删除的邮件 我应该从服务器获取所有消息并与本地数据进行比较以进行同步吗 通常的方法是对每个文件夹执行以下两个
  • nginx docker 容器:502 错误网关响应

    我有一个服务监听 8080 端口 这不是一个容器 然后 我使用官方镜像创建了一个 nginx 容器 docker run name nginx d v root nginx conf etc nginx conf d p 443 443 p
  • VBA:新集合 -> 模块不是有效类型

    我尝试使用集合作为函数的一部分 但是在编译时不断收到错误 模块不是有效类型 即使该函数只是定义一个集合 我也会得到相同的结果 Function CountUniqueTags Dim table As Collection Set tabl
  • Hibernate HQL 中使用派生表的子查询

    我有一个 Hibernate HQL 问题 我想将子查询编写为派生表 出于性能原因 在 HQL 中可以做到这一点吗 例子 FROM Customer WHERE country id in SELECT id FROM SELECT id
  • 无法在函数内将数据写入 Excel 2007/2010 中的 VBA 单元格

    我想通过 VBA 设置单元格的值 我用谷歌搜索了一下 看到了一些解决方案 Sheets SheetName Range A1 value someValue Sheets SheetName Cells 1 1 value someValu
  • 如何从numpy数组中获取两个最小值

    我想从数组中取出两个最小值x 但是当我使用np where A B np where x x min 0 1 我收到此错误 ValueError 需要超过 1 个值才能解压 我该如何修复这个错误 我需要在数组中按升序排列数字吗 您可以使用n
  • 哪个线程运行 ContentProvider?

    如果我从 Activity 调用 ContentProvider ContentProvider 会在哪个线程中运行 例如 如果 Activity 被终止并且查询正在 ContentProvider 中执行 会发生什么情况 假设您的网络查询
  • [GSI_LOGGER]:“callback”的值不是函数。配置被忽略

    I m 迁徙 https developers google com identity gsi web guides migration from 谷歌登录平台 https developers google com identity si
  • 在 Android 中通过摇动打开/关闭屏幕

    我正在制作一个应用程序 需要在用户摇动手机时打开 关闭屏幕 到目前为止 我已经有了一个 SensorEventListener 它可以按照答案中的建议监听震动这个问题 https stackoverflow com questions 23
  • WCF 模拟和 SQL 可信连接?

    我们有一个托管在 IIS7 下的服务 SQL 服务器的连接字符串设置为 受信任 为了进行身份验证 我需要在服务上设置模拟并让客户端启动模拟连接 有没有办法不设置模拟并仍然允许服务通过可信连接登录到 SQL Server 我们希望避免让客户端
  • CSS 布局:2 列固定流体(再次)

    我正在尝试设置一个 2 列布局 其中左侧区域是固定的 主要内容是流动的 我在这里看到了几个答案 它们往往有效 然而 当我在 左侧 区域使用 jsTree 并在主 内容区域使用 jQuery UI 选项卡时 会出现一些奇怪的行为 html d
  • Keras 中的 Tensorflow 自定义损失函数 - 张量循环

    我正在尝试在 Keras 中编写自定义损失函数 如下所示 Keras 中的自定义损失函数 https stackoverflow com questions 43818584 custom loss function in keras 我的
  • 如何告诉 RestTemplate 使用 UTF-8 编码进行 POST?

    我在使用 RestTemplate 发布采用 UTF 8 编码的 JSON 时遇到问题 JSON 的默认编码是 UTF 8 因此媒体类型甚至不应该包含字符集 我尝试将字符集放入 MediaType 但它似乎无论如何都不起作用 My code
  • 我可以打包 Webpack 但不缩小调试范围吗?

    似乎是一个真正愚蠢的问题 必须在某个地方有答案 但我已经搜索了几个小时但没有结果 我是 ReactJS 和使用 Webpack 构建的新手 一般来说是构建配置 我正在使用 Webpack 链接和捆绑我的整个项目 包括 ReactJS 它工作
  • React Native iOS Release 构建停留在旧代码上,但 Debug 构建工作正常

    当我尝试构建我的 React Native 应用程序时XCode in Release mode在将其投入生产之前进行检查 它是否会陷入旧代码中 无论我对 JS 文件进行什么更改 它都不会执行此操作 在调试模式下 这种情况不会发生 只是正常
  • 如何防止mysql隐式提交

    mysql文档 http dev mysql com doc refman 5 5 en implicit commit html指出某些语句将在事务期间导致隐式提交 例如 CREATE TABLE foo bar INT START TR
  • 为什么 LISP 中符号名称中的连字符是约定俗成的?

    这个推荐的理由是什么 为什么不与使用下划线的其他编程语言保持一致 我认为 LISP 使用连字符有两个原因 历史 和 因为你可以 History LISP 是一种古老的语言 在早期输入下划线可能会很困难 例如 我用于 LISP 的第一个终端是