问题标签 [hy]

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.

0 投票
1 回答
35 浏览

hy - 宏字符串插值/如何在字符串中取消引用?

我有一个像这样的宏:

运行后展开如下:

为什么不展开到'abc'?

在字符串中取消引用的正确方法是什么?

0 投票
1 回答
51 浏览

macros - 宏内部的宏创建一个无列表

我定义了两个宏:

当被称为:

并扩展并翻译成python它产生以下内容:

在没有嵌套宏的情况下编写它仍然会产生一个无列表:

这份名单[None, None, None, None]来自哪里?虽然没有列表不会破坏任何东西,但它仍然有点刺耳,我希望我知道编写这个宏以避免无列表的更好方法是什么。

0 投票
1 回答
71 浏览

hy - Hy 相当于 Python 函数参数中强制关键字参数的 * 运算符

最近我一直在尝试用 Discord.py 在 Hy 中编写一个简单的机器人。在 Discord.py 中,我们可以编写如下命令将最后一个参数转换为包含空格的完整字符串:

但是,如果我在 Hy 中将其写为:

它将抱怨缺少必需的参数“文本”。defn更诡异的是, Hy官网部分的示例代码:

甚至在hy --spy. 我用错了还是有正确的方法来处理它?

0 投票
3 回答
121 浏览

async-await - 如何在 hylang 中编写像点(。)运算符这样的宏?

我们有一些异步属性(使用@property)和一些常用的。我们必须使用 hy 来检查一个是否是异步的,或者不使用 asyncio.iscoroutine 函数。问题是我们必须使用 getattr 而不是 。运算符,因为 dot 将调用属性内部函数。我们希望在不破坏其他项目中使用的 DSL 的情况下更改我们的 hy 代码,也就是说,我们不想对属性名称使用字符串表示法(双引号),因此我们需要编写一些像 . 但在内部调用 getattr。

0 投票
0 回答
58 浏览

python - 在 Hy 宏中解析参数

我需要帮助解析为类生成代码的 Hy 宏中的参数。

我要完成的工作:一个将生成具有预定义属性的类的宏。属性名称是用于初始化类的变量。

这是我到目前为止所拥有的,

属性生成器

下面的函数生成属性 getter 的代码(约定是使用__variable__名称作为私有/内部变量)

类生成器

下面的宏使用方法中传递的变量名生成类的代码__init__

测试用例

上面的方法很好地适用于下面的简单案例,

但对于更复杂的论证结构却失败了,

  • (^(of float) data ^(of int) x &optional ^(of str) doc)
  • (^(of float) data ^(of int) x &kwonly ^(of str) [doc None])

这是因为宏中的以下语句,

问题:如何推广宏以适应更复杂的用例?

0 投票
5 回答
116 浏览

python-3.x - 使用 Lisp 的线性时间余弦相似度

可以使用 for 循环在线性时间内计算两个列表的余弦相似度。我很好奇如何使用类似 Lisp 的语言来实现这一目标。下面是我在 Python 和 Hy (Hylang) 中的代码示例。

Python:

海(Lisp):

0 投票
3 回答
54 浏览

hy - Hylang "in" 运算符

海朗有in接线员吗?例如,在 python 中,这将允许进行以下测试:

0 投票
1 回答
34 浏览

hy - “for”、“lfor”等中的多个迭代器,例如“dct.items()”

我怎样才能将以下内容转换为hy

0 投票
2 回答
50 浏览

hy - 在线程宏中使用 get

以下三个示例失败并出现以下错误:

get线程宏 ( )是否不能使用或一般宏->?我已经多次重写打印语句以确保括号一致,并且它们都在那里。

0 投票
2 回答
55 浏览

python-click - 在此处文档中包含 Hy 程序的 shell 脚本中使用 `click`

如何将以下使用 click with shell + python repl(I think) 的工作示例转换为hy

当我将以下hy示例与 一起使用时./test.sh --name shadowrylander --count 3,我得到:

当我应该得到:

通常我可以hy - "$@" <<'EOF' ... EOF毫无问题地使用。