1 分•作者: nnmg•大约 16 小时前
返回首页
一周热榜
1 分•作者: kjhughes•大约 16 小时前
1 分•作者: pkal•大约 16 小时前
1 分•作者: rhgraysonii•大约 16 小时前
我把它拼凑起来是因为一个朋友说它听起来很酷。<p>感觉它实际上是一个相当不错的媒体探索工具。<p>哈哈,所有的氛围代码都写出来了,我需要让它合理/可展示,但它运行得还不错。<p>我想着假期就要来了,HN 可能会想找一些新的剧集来追。<p>节日快乐!
1 分•作者: mcflem007•大约 16 小时前
1 分•作者: imadjourney•大约 16 小时前
1 分•作者: giuseppedita•大约 16 小时前
1 分•作者: olivdums•大约 15 小时前
大家好,我是Oli,今年32岁,远程办公,每天坐在办公桌前10个小时。<p>这正在慢慢地(而且肯定地)毁掉我(也毁掉你)。
它不仅损害我的身体,也降低了我的生产力,所以我想尝试解决这个问题:<p>连接你的日历,Movely会找到空闲时段,并在其中添加5分钟的微休息(力量训练、活动、缓解眼疲劳或压力)。<p>每个周日晚上,我都会运行一个任务,根据你的空闲时段为下周创建这些休息时段。<p>如果你想知道我的技术栈:
* Monorepo:Nx (web / 后端 / 市场营销 + 共享库)
* 前端:Next.js, Tailwind, Radix UI, Zustand
* 后端:NestJS, PostgreSQL (Prisma), Redis (BullMQ 用于调度任务)<p>如果你有任何意见、对产品不清楚的地方或改进建议,或者调度功能是否感觉有帮助或打扰,我很乐意在此获得直接反馈!<p>感谢你的阅读!
1 分•作者: hn_acker•大约 15 小时前
1 分•作者: sieep•大约 15 小时前
1 分•作者: telui•大约 15 小时前
# Dragonlang
基于行的微型语言,其最小解释器位于 `__main__.py` 中。
## 文件扩展名
源文件使用 `.dragon` 扩展名。解释器也接受没有扩展名的文件名,如果存在,将尝试 `<name>.dragon`。
## 运行
文件模式:
```bash
python __main__.py path/to/program.dragon
```
REPL 模式:
```bash
python __main__.py
```
键入 `exit` 或 `quit` 退出 REPL。
### 文件解析
当路径参数没有扩展名(名称中任何地方都没有 `.`)时,解释器首先尝试 `<path>.dragon`(如果存在)。
## 执行模型
- 解释器一次处理一行。
- 没有多行语法、块结构或语句分隔符。
- 解析基于简单的子字符串检查,而不是词法分析或语法。
### 匹配顺序
行按此顺序检查,第一个匹配胜出:
1. `+`(加法)
2. `-`(减法)
3. `print`
4. `on error`
5. 精确的变量查找
6. 备用错误
这意味着包含 `+` 或 `-` 的行永远不会到达 `print` 或 `on error` 处理,即使这些词出现在该行中。
## 语法和行为(基于 `__main__.py`)
每一行都被独立处理。解析是最小化的,基于子字符串检查,而不是正式的语法。
### 打印
打印字符串字面量:
```dragon
print "hello"
print 'world'
```
如果 `print` 之后的文本与解释器环境中的变量名匹配,则打印其值。(变量尚不可赋值。)
注意:
- `print` 在该行的任何位置都会被检测到,而不仅仅是在开头。
- 解释器会删除 `print`,然后从两端修剪空格和引号(`"`、`'`)。没有转义处理。
### 整数运算
支持整数的加法和减法:
```dragon
2+3
10-4
```
运算符周围允许有空格。
注意:
- 解释器会在它看到的第一个 `+` 或 `-` 处进行分割。
- 在解析之前,两边都会被修剪并在环境中查找。
- 非整数值会引发 `ValueError`,并报告为通用错误。
### 变量(只读)
如果变量已存在于解释器环境中,则可以读取它们。目前没有语法来分配新变量。变量存储在 `__main__.py` 中的 `env` 字典中。
### "on error"
有一个特殊的行前缀 `on error`,它会被解析,但目前不会产生输出。它会删除前缀,如果存在,会在环境中查找剩余的文本,然后返回,不打印。
## 错误行为
- 文件模式:`run()` 中的任何异常都会打印 `Error in line: <line>`。
- REPL 模式:异常被捕获,但当前代码打印异常类对象,而不是实际的错误消息。
## 示例程序
```dragon
print "hello"
2 + 3
10-4
```
## 当前限制
- 尚未进行变量赋值(环境是只读的)。
- 没有条件语句、循环或函数。
- 没有注释、字符串转义或多行语句。
- 错误报告为 `Error in line: <line>`。
- `on error` 行被解析,但没有可见效果。
## 保留字
以下单词在解释器中使用:
- `webcollect`
- `list`
- `open`
- `system`
- `shutdown`
- `warn`
- `go to`
- `enter`
- `info`
- `time`
- `pause`
## 使用 `pause`
```dragon
pause <amount>
```
1 分•作者: Perefin•大约 15 小时前
1 分•作者: hn_acker•大约 15 小时前
1 分•作者: zdw•大约 15 小时前
1 分•作者: tootyskooty•大约 14 小时前
我花了几个月时间构建这个项目,起因是我对使用 LLM 学习的方式感到沮丧。你得到的是一堆文本,然后消失在聊天记录里。维基百科则恰恰相反:无休止的兔子洞,缺乏结构。我想要介于两者之间的方式。
Periplus 将课程生成为相互关联的 Markdown 文档,并根据你的水平量身定制。它首先会问几个问题,构建一个教学大纲,并且每个概念都链接到相关的概念。点击你不理解的术语,它会并排打开一个新文档。
很大程度上受到了 Obsidian 的启发——图谱视图很相似,并且如果你想在本地保存笔记,可以导出到 Obsidian。
它还可以从任何文档生成测验和抽认卡,这有助于解决我总是遇到的被动阅读带来的遗忘问题。
技术栈:React、Node/Express、Postgres 搭配 pgvector、Sonnet 4.5 用于生成内容。图谱使用 D3,并结合了我制作的 WASM 优化的多体模拟 [1]。
还有很多需要改进的地方!很希望收到关于课程质量的反馈,我主要测试了技术类主题。
[1]: <a href="https://www.npmjs.com/package/d3-manybody-wasm" rel="nofollow">https://www.npmjs.com/package/d3-manybody-wasm</a>
1 分•作者: indigodaddy•大约 14 小时前
1 分•作者: CheeseFromLidl•大约 14 小时前
1 分•作者: TomatoProgram•大约 14 小时前
1 分•作者: mikece•大约 14 小时前
1 分•作者: srirambhat•大约 14 小时前