问题标签 [guile]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
dictionary - 在 guile 方案中,如何迭代键值对列表(即哈希映射)?
我正在玩弄诡计来尝试熟悉纯函数式编程概念。在我可以用任何语言做任何有用的事情之前,我需要了解一些基本的数据结构以及如何有效地操作它们……尤其是可枚举的数据结构。
我可以迭代这样的列表(我不确定我是否正确缩进):
哈希表/哈希映射在方案中是什么样的?是否有一个真实的数据结构来表示一个,还是归结为制作一个列表?在这种情况下,如何从内部列表中获取键和值作为单独的变量?
显然这是错误的,因为 lambda 需要一个值,而不是两个:
我正在尝试做的 Ruby 等价物是:
lambda - 何时使用带有“裸”形参数的 lambda 定义?
我现在正在学习 Guile Scheme,在文档中我突然遇到了以下结构:
这让我陷入了困境;到目前为止,我一直假设形式参数总是包含在一个列表中:
我想知道何时使用此变体,以及这与可变数量参数的点表示法有何不同。具体来说,以下两种变体有什么区别:
是否有区别——也许对于更复杂的例子——我需要注意,有什么理由更喜欢其中一个吗?
macros - 是否可以只打印传递给 Scheme 宏的字符串?
我正在使用 guile 方案开发语言翻译器,并且需要处理基本情况,即您尝试转换单个单词。
这应该返回字符串var
而不是数字5
。
如何使用 R5RS 方案宏(define-syntax
样式)来做到这一点?
编辑:
我正在从 Scheme 翻译成 Coffeescript。
scheme - 如何检查符号是否是过程
我正在尝试编写一个宏来检查列表以查看是否有过程调用,但我不太确定如何去做。我首先想到的是使用程序?功能检查,但它不起作用。我试图做的一个例子如下:
现在,该列表的汽车返回+
,但函数仍然返回false
。
有没有办法检查列表中的汽车是否是程序?
macros - 关于诡计的方案:让语法无效?
对于函数式编程任务,我正在编写一个将方案代码转换为咖啡脚本代码的方案宏。我在 Linux Mint 12 上使用 guile,并且 (use-syntax (ice-9 syncase)) 处于活动状态。
目前,我正在尝试将 let-syntax 嵌套在 define-syntax 中,并且不断收到意外的“无效语法”错误。请原谅任何不良的编程习惯,因为我是一个计划新手。:)
我的代码:
和我的输出:
经过几次尝试研究这个错误之后,我开始认为我只是不理解一些基本的东西。我确信你可以在定义语法中嵌套一个 let 语法。我究竟做错了什么?
lisp - 为什么尾递归 Collatz 猜想会导致 Scheme 中的堆栈溢出?
我在 Scheme 中写过 Collatz 猜想:
这是一个尾递归调用,但是当我调用 (C 121) 时出现堆栈溢出:
为什么正确的尾递归会导致溢出?如您所见,我使用 Guile 作为 Scheme 解释器(版本 1.8.7)。
gtk - 如何在 Guile 中使用模块?`$ 诡计复制.scm; 错误:没有模块代码(gnome-2)`
我学习了有关 Scheme 的基础知识并想尝试 Guile。
当将此示例复制到此处的第一个示例并作为脚本运行时,发生错误,
我的笔记本电脑运行 Fedora 16 x86_64,yum install guile*
如何处理 Guile 的模块?
scheme - Guile 方案和标准方案之间的区别(在 Racket IDE 中)?
我有一堆想要在 Racket Scheme IDE 中运行的“遗留”Guile Scheme 代码。似乎有足够的差异使这成为一项重要的练习。(我的 Scheme 知识水平是完成 The Little Schemer 的水平)。
我的问题是:
- Guile 方案和标准方案(在 Racket IDE 中)有什么区别?
- 鉴于这些差异,一般来说,我需要采取哪些步骤将一些 Guile 方案代码转换为标准方案?
附加:(对 Racket Scheme 和 R5RS/R6RS 之间的分歧感到高兴)-我想要的是在 Racket IDE 中运行“某些东西”-而不是在 Racket 语言中运行。
guile - guile 中是否有类似 Tcl_LinkVar 的函数可以将 C 变量直接链接到 guile 变量?
Tcl_LinkVar
可以将 C 变量直接链接到 Tcl 变量。当 C 中的变量发生变化时,Tcl 变量也会相应地发生变化。非常方便。
例子:
我想知道Guile是否支持类似的功能?或者当变量发生变化时,我每次都必须将值传递给方案中的变量。
parsing - 方案 - LALR 解析器生成 - 来自字符串的输入
我们正在尝试生成(以诡计)从字符串而不是标准输入读取字符的解析器和词法分析器。
我们开始修改 http://code.google.com/p/lalr-scm/source/browse/trunk/calc.scm?r=52代码中包含的计算器示例
问题似乎在以下行:
我们尝试定义一个新的输入端口:
并且变量程序是这样定义的:
但它不起作用,它仍然等待标准输入字符。
该文档缺少详细信息,因此我们无法弄清楚如何解决这个问题。
谢谢