Hanwen Guo [index]
Hanwen Guo [index]
I am a Ph.D. student at the University of Utah, advised by Prof. Ben Greenman. Before that, I received my B.Eng. in Computer Science at Wuhan University.
I study programming languages and type systems, with a focus on gradual typing and similar theories that help reduce the friction and improve the ergonomics of adopting strong guarantees.
Also see my CV for more details about my research and work experience.
Contact Me
Contact Me
guo AT hanwen DOT io(personal email)hanwen DOT guo AT utah DOT edu(university email for professional purposes)- GitHub
Blog [0005]
- February 08, 2026
Blog [0005]
- February 08, 2026
PostMagit in Terminal [0004]
- November 11, 2025
PostMagit in Terminal [0004]
- November 11, 2025
The following is a script I use to open Magit in current directory from terminal:
#!/usr/bin/env bash
git_root=$(git rev-parse --show-toplevel)
emacsclient -c -n -a emacs -e "(progn (magit-status \"${git_root}\") (delete-other-windows))"
if [[ -f `which osascript` ]]; then
osascript -e "tell application \"Emacs\" to activate"
fi
#!/usr/bin/env bash
git_root=$(git rev-parse --show-toplevel)
emacsclient -c -n -a emacs -e "(progn (magit-status \"${git_root}\") (delete-other-windows))"
if [[ -f `which osascript` ]]; then
osascript -e "tell application \"Emacs\" to activate"
fi
I put this script in my PATH as magit, so I can just run magit in any git repository from terminal to open Magit in Emacs. The original source for this script comes from Christian Tietze’s post, and I have modified it to make it create a new frame with only one window showing Magit status. I also created another script with -nw in place of -c -n and removed the part that activates Emacs to open Magit in TTY Emacs directly.
PostFinding Room for Keybindings in Emacs [0003]
- November 27, 2025
PostFinding Room for Keybindings in Emacs [0003]
- November 27, 2025
There are so many commands that I want to bind to keys in Emacs, but the keyboard is crowded already. In the Key Binding Conventions section in the GNU Emacs Lisp Reference Manual, it says that C-c followed by a letter as well as F5 through F9 are reserved for users. However, I, just like any sane Emacs user would do, tries to put groups of related commands under prefixes, which means that such a commmand needs at least three keystrokes to invoke (the C-c, the letter prefix, and the keybinding in the prefix). This is anti-productive.
Luckily, there are some keybindings in Emacs that are not that useful for me (and maybe others as well), so I can repurpose them for my own use. The following are some of such keybindings. Note that many of these are useless for me because they are more relevant to terminal Emacs, while I almost always use Emacs in a graphical environment, so YMMV.
C-z: By default, this is bound tosuspend-frame, which could be replaced by the window manager’s own shortcut for minimizing windows on most systems. It may still be useful on terminal Emacs though.C-t: This is bound totranspose-chars, which turnsa|bcintoba|c(where|is the cursor). Does anyone really use this? I never do. (But I do find other transpose commands useful.)M-`: This is bound totmm-menubar, which shows a text-based menu bar, which is not very useful in graphical Emacs.C-iandC-m: Due to historical reasons, these are, by default, recognized asTABandRETrespectively. This is still relevant in terminal Emacs, since some terminals may not be able to distinguish them. But in graphical Emacs, it is possible to distinguish these control characters fromTABandRET, see these relevant discussions on Emacs Stack Exchange.
That gives me at least five more prefixes to use for my own keybindings, which saves me a lot of keystrokes, and I hope it helps you as well. Happy hacking!
PostHow to Find a Color Scheme Quickly [0002]
- April 19, 2025
PostHow to Find a Color Scheme Quickly [0002]
- April 19, 2025
There are always things in the world that require some level of visual design. Taking some things I’ve had to do recently as examples: creating slideshows, drawing charts for papers, making posters, and designing my homepage – having some design is always better than having none. In the design process, choosing fonts is relatively simple. After doing this a few times, you slowly build up a set of fonts that can be combined for various occasions. While layout has many details, as long as you follow some basic principles like alignment, white space, contrast, and unity, the result won’t be poor. However, choosing a color scheme is often the hardest part for me.
Criteria for Choosing a Color Scheme
Criteria for Choosing a Color Scheme
A “color scheme” isn’t just a set of colors found randomly via a search engine or produced by a generator. Most such schemes are just a collection of color blocks and RGB values. They might look okay at first glance, but for a non-professional like me, it’s hard to directly apply them to actual designs. This is just a mere collection of colors, not a truly usable color scheme. For me, a color scheme should meet these criteria:
- Clearly defines the purpose of each color, such as background color, text color, accent color, etc.
Based on the defined color purposes, meets certain accessibility standards, including:
- Sufficient contrast between text and background.
- Colorblind-friendly.
Where to Find Color Schemes
Where to Find Color Schemes
After several fruitless attempts, I decided not to waste time on search engines anymore. My inspiration came one day when I was staring at my Emacs. At that moment, I suddenly realized that code editor color schemes are arguably a perfect solution because they:
- Have very clear color purposes.
- Usually don’t have too many primary colors.
- Every code editor has a huge number of color schemes to choose from.
- These schemes are usually carefully designed rather than randomly generated.
- Many schemes meet certain accessibility requirements.
- You can experience the effect of these schemes right in the code editor.
- Provide a sense of visual unity with one’s daily workflow.
The only concern is the copyright issue. Although colors themselves are not protected by copyright (at least as far as I know), to avoid unnecessary trouble, one should try to use schemes that are explicitly licensed for use.
How to Evaluate
How to Evaluate
Palette Tester is a tool for testing the contrast of a color scheme. It can test contrast under WCAG 2.1 (AA) or APCA Contrast standards. Coloring for Colorblindness and Who Can Use are two tools for testing the colorblind-friendliness of colors. They can show how the same set of colors appears to people with different types of color blindness.
My Choice
My Choice
I have always used the Modus Themes color scheme in Emacs. Coincidentally, this color scheme was designed with accessibility in mind, achieving the WCAG AAA standard, and provides variants friendly to two types of color blindness (deuteranopia and tritanopia). The color scheme of the webpage you are currently viewing comes from the tinted variant of Modus Themes.
PostGödel’s β Function [0001]
- September 22, 2023
PostGödel’s β Function [0001]
- September 22, 2023
Today in the Introduction to Recursion Theory course I was told about Gödel’s β Function, which makes it possible to encode a finite sequence into a single natural number.
The Definition
The Definition
Before the function it self, there are some auxiliary functions that need to be defined.
First we come up with the quotient and remainder functions. For all , let and be the quotient and remainder of divided by , respectively, if , and otherwise.
Then follows the (floored) square root and exceedence functions. For all , let be the largest number that , and .
Now comes the and functions, named after what Gödel named them. Let , and . The definitions may seems weird at first glance, but they would soon show their power. And they have great properties: for all , and . The proof goes as follows.
For that property of and , it suffices to show that , and this can be brought out by the fact that
That property of and is also easy following similar approach. These two properties means that the arguments of can be extracted from the result of it, and that means is an 1-1 function.
Finally, the Gödel’s β function is defined by . (Note that this is not the original definition (3-ary) but a simplified 2-ary one.) The definition is also a bit of complicated, but the following lemma tells us about why it is amazing.
Gödel’s β Function Lemma
Gödel’s β Function Lemma
For all , there exists a such that
for all .
And the the proof entails an algorithm to calculate such an .
Before the proof, we need to prove two preliminary propositions.
Bézout’s Lemma
Bézout’s Lemma
(Note that this lemma is a weaken version of the original theorem.)
If and they are coprime, then for some integers and .
Proof: Let , i.e. the set of all positive (integral) linear composition of and . Thus there must be a minimum value for this non-empty set (the non-emptiness is trivial). What this proof wants to show is that . We prove this by contradiction. Assume that . Take , let , we have . And since and are both (integral) linear composition of and , so must be , otherwise it contradicts with the minimality of . Then we have for all . Note that and , so is a common divisor of and , which leads to the contradiction toward the coprimality of and if .
Chinese Remainder Theorem
Chinese Remainder Theorem
For all , if are pairwise coprime and for all , then there exists a such that for all .
Proof: For each , let . Since are pairwise coprime, and are coprime. By Bézout’s Lemma, there are integers and such that . The insight here is that for each , we construct the number that its remainder divided by is , and compose these constructed numbers in a way that they won’t affect each other. Note that cannot be divided by , can be divided by for any where , and there is an on the right hand side of the equation we got from the Bézout’s Lemma. It is easy to see that, now it suffices to take
where is any natural number such that .
The Proof of Gödel’s β Function Lemma
The Proof of Gödel’s β Function Lemma
Finally we come to the proof of the lemma. From the definition of and , we can see that we only need to find a proper value of such that the numbers for each coprime, then construct the value of by Chinese Remainder Theorem, and calculate the . For convenience, denote by for each .
What conditions should the value of satisfy? First, it must make , which is one of the conditions asked by Chinese Remainder Theorem. Second, it makes those ‘s pairwise coprime. To prove propositions like ‘there is no prime such that and for different ‘, consider proof by contradiction. Think about what if there is some prime such that and for different , i.e. and . Assume without loss of generality, we have . It will be good if we have , which would lead to the contradiction that . So things become evident: find a construction of such that . This can be achived by making divisible by the product of all the possible values of , which ranges from to . This is to say, making would be a good idea. With the first condition that should satisfy, it suffices to take , where . I take instead of there for better elegance with the same effect.
The above is not a strictly stated proof, however it is easy to rewrite it into one.
Mumbles (Again)
Mumbles (Again)
The reason I write this post is not that the ability of Gödel’s β Function to encode a finite sequence into a number is amazing (there are many other techniques to achive this, e.g. encode the sequence into the exponents of an initial segment of primes), nor that the proof is elegant (though it is). It is just because I recalled the confusion that those two preliminary propositions caused to me, and realized that they seems easy for me now, and can be used to prove such lemmas. This feels strange, so I decided to write it down.
Poems [000S]
- February 09, 2026
Poems [000S]
- February 09, 2026
甜蜜 [000R]
- March 24, 2025
甜蜜 [000R]
- March 24, 2025
的足弓也一直
起伏
到钟声响了又响
只有绿色的时间还亮着。
圆珠笔的墨水红了,这一季
我的手指还是麻木
笔尖划过时落在柏油路上
像雪片 铝片 或者玻璃片
漂流。
我不是为了吃饭才来的,如此说着
水也从天上来
我喝不下。早春的夜里
这一切都太过清醒。我今晚还要开车
草头 [000Q]
- January 14, 2025
草头 [000Q]
- January 14, 2025
谈笑时也不改变天气
第二天只有走向壁炉
伸手指摸索余灰
穿着华服站在学校门前
不害怕被保安赶走
到孩子们全都不见了
才发现自己也是他们一员
撑着伞等待的时候
身体只是在随便地颤抖
要回到家打开冰箱
再放进去身上的积雪
曾经有那么一段日子
我是雪地里矗立的草头
平行世界 [000P]
- November 14, 2024
平行世界 [000P]
- November 14, 2024
流泪的感觉像一条鱼滑向地面
鳞片和百叶窗一样闭着,还好
缝隙里的天空亮亮的
你不是一棵盆景或者什么
留下的是一个繁复的花瓶
不开灯的角落
花一枝枝地丰盈了起来
这一切发生的时候
都紧紧地闭着眼睛
好像只要睁开眼
就再也躲不过窗外山上的雪
绝句·贝斯 [000O]
- May 16, 2024
绝句·贝斯 [000O]
- May 16, 2024
嘟着嘴巴巡游墨贼的田
忽然一日穿上蕾丝衣裙
脚踏利刃饰演金属明星
面对 [000N]
- January 05, 2024
面对 [000N]
- January 05, 2024
我捧着瓷碗走上前去
等待 溢出
拒绝的时候我十分轻松
诚然不过所以即使因此
转身,在眩晕中
惭愧得握住一只骨节交错的手
——不小心跌进不锈钢筷子竹林
一切热闹得说不出口
眼球上热风吹过
春 [000M]
- October 15, 2023
春 [000M]
- October 15, 2023
轻柔地攻击我。绿色,代表严重
思念挤出树木的嘴
春天跑过:像一条灰狗,摇晃
柔软而迟疑的尾。知我者谓我心忧
心忧时天空向一侧倾斜。倾斜的嘴唇
抽动,我在绿的玻璃后被捕获
浑身潮湿如水果熟透,逃脱然后归来
归来;我在湿漉漉的地里
发芽褐色的关节,启口
春天的谎言:
一切都需要重新躺下,使得
阳光黏住全身。
不知名的喙
像春天的斑点
作为阴翳,胜于缠绵
袭击我。甚于生命
目中无人 [000L]
- September 04, 2023
目中无人 [000L]
- September 04, 2023
我把你的牙齿埋起来时没有想到,今天
轻轻抚摸胸口,这干燥的花朵
抓住我的心脏像鸟抓住翅膀;像火车
抓住枕木,摇晃着尝试穿越晨昏线
像清早你抓住我发皱的领子。我呼吸困难
眼前曾经吃下的花朵飞旋
你一定想不到。很多年后我们把酒
声音碎在杯里,等待醉如同等待
一次预谋已久的假释,多么可爱的游戏
青梅竹马 [000K]
- March 19, 2023
青梅竹马 [000K]
- March 19, 2023
一口咬下去
甜丝丝的让我的嗓子有点疼
你给我卷烟的纸条我弄丢了
今天看电影的时候
有谁无缘无故在世上某处死
这事情很清楚
我没什么好说的
明天的天气预报还是下雨
他们说,下雨天就别出去干活了
外面已经有人在哭了还不够吗
我点点头,想起之前的告别
下次你再来,我就不请你吃饭了
春,又一则 [000J]
- March 19, 2023
春,又一则 [000J]
- March 19, 2023
你还像从前一样困吗
攥着声音在风中慢慢地硬
还是说,质地已经不再重要
这么多年过去了
你快飞,或者我别飞了
飞着我们的心就越来越白
我们的距离越像故乡
我想我把你的名字打湿了
把它挂起来的时候
太白了,所以不小心下起了雨
我本应该挂在嘴上而不是软的骨头上
前天我梦见你在震动
危险的信号
隔了这么长就看到了
如果能记得,请你吃些水果
这个季节有它的好,我们的好
也许困的人不会想到被困的人
青绿的时候,黄瓜的刺还足够多
二重奏,爱情何许人也与符号恋爱 [000I]
- January 02, 2023
二重奏,爱情何许人也与符号恋爱 [000I]
- January 02, 2023
醒来时,记得草原起风的肚脐
昨晚的太阳还柔软。转头,看缓坡上的你
放牧白而柔软的兽,声音渐悄
咸的叶子戳着我的脸。当你说话然后沉默
咸的叶子扎根然后生长
一场缓慢而坚定的摇晃。过去的日子过去
橙色的火从远方升起时躺在地上
在我们的草原上等待你放牧归来
在回头时匍匐在河的另一边
望着夜色,我们数我们的东西
野生的房子、绿的眼睛、玻璃瓶
影片的第一幕诞生于拿铁熹微的广场
笑容稠而橙,我们说话的时候轻轻地
融化。枕上彼此的骨,有细而绵软的声音
所以沉入:包裹进软的玻璃,弧度似车灯
眨眼时睫毛荡起光令脸颊发痒发烫
指尖紧得浅黄。抬头。
睡醒的时候就巡游:拨开门扉
躲避金属,潜入人群并且秘密微笑
在回头时匍匐在河的另一边
面前是银色的流。我们握着彼此
力在你小小的椭圆上凝聚
雪 [000H]
- November 26, 2022
雪 [000H]
- November 26, 2022
一口紧绷的湖,红的水有黑的皮
灰的脚印,在目光下噼啪碎裂。
此刻你呼唤骨,覆尘的牙齿,干燥的眼球
遍寻湿润的绒,轻盈的棉,柔软的白
肋骨间的风慢慢地软下去。
铁在爬行。烈性的肉需要缓缓,缓缓地饮
佐以一些难以跳动的梦,清淡无味的睡眠
你的引擎摩擦沥青和泥土。玻璃在流
趁夜晚闭合,一切都还来得及
雪的围墙站在白茫茫的土地上
便利店之王 [000G]
- October 24, 2022
便利店之王 [000G]
- October 24, 2022
菜市场之梦三首 [000F]
- March 08, 2022
菜市场之梦三首 [000F]
- March 08, 2022
其一·水产区
事情本不应如此:追逐一只
病入膏肓,唇齿低垂之燕;
其熟视被严格限制的颜色,且
热爱雨后的天棚与水坑,从菜摊到调料店
跨越之技,天下卓绝
巧取豪夺乃是此间真意。允许飞奔
禁止购买并烹饪一切水产(甲壳类)
应当烹小鲜。
其二·蔬菜区
店中不见生人已久。晨光潜潜
睡梦尚且淋漓,青绿在即
叶片选择相信它的脉络,一种清脆的声音
一切都自然而然。选择是透明的
秤的手臂柔软;因此,
色彩、形状和质地得以精准称量:
圆弧轻于绿色而重于皱
秤的宣告明亮。日光之下,蔬菜总是新鲜
甚至可以光合直至闭口不谈。现在
只需要洒一层露水并犹豫地等待。只是
当然,天色会发生变化
其三·肉摊
冬天,铁石之声仍在生活:
温度可以且应当被切下然后爬行。明天
摸上去是一个圆的洞,目光曾经穿过
口径两字节的声音曾经穿过。
金属的夜上肉在流;伤口已经填平
玻璃折射光胜过牙齿和名字。灯火闪烁
问:肉将何为何处纷飞?
关于此,存在足够的想象余地:
上缴睡眠、模仿一尊假山、被空气淹没
或者进入纸张和金属,如此种种
以两百赫兹的频率转动七十年。悬挂于
无叶之桨,红色的螺旋。肉
在凝固的空气,不能停止干涸
果汁记 [000E]
- March 03, 2022
果汁记 [000E]
- March 03, 2022
就开始缓慢地生长,触手约零至六摄氏度
质地无虞。水果的心情是重要的
生产预报称有七级复合原料预警;
浓缩防护性命攸关——颜色是重要的。
灰鸟应当为白色湖水的口感而睡眠
摇摇之际,对草原百听不厌
有思分裂 [000D]
- December 12, 2021
有思分裂 [000D]
- December 12, 2021
一些乖,一些不为人承认的悲哀的国度
不为人所触碰的血液循环之中心集散
于是枪油流淌。罪淹溺于泪、污垢和暖流
焦距扩大之际我们的战争从花洒中涌现
皮革的意义愈发粘稠。当骨湿漉漉地拥抱骨
不可怀疑者唯大地之柔软、瓷之苦楚
醇和芳香烃疼痛风寒摇曳所在处
喉舌:流变难舍
肺泡温度吐出蛋白质般柔软月光
皮格马利翁膏肓之方
突然你是失足跌落铁轨的鱼
卵石哭泣之欲,挽联碎裂空气
沉重的必要包裹博弈之必要
博弈,包裹戏中酸痛台词贯穿胸腹
于站台点燃脊椎之必要
石砖失手忘记某人
纸、手、木弥散之必要。人造
玫瑰自弃雄蕊——田园将芜
胡不葬西西弗斯于月海之秋
青铜太阳 [000C]
- August 19, 2021
青铜太阳 [000C]
- August 19, 2021
像日光通过削波器落下,呼啸失真
晒干的言语失去粘腻
肉体的边缘刺痛之余愈加锋锐
纷乱的沉默中,无纺布拒绝呼吸
拒绝悬挂在雨水尸体上的幽灵
所以颅腔里列车驶过,奏响
所以我躺在世纪火车总站,失眠
生出板状根的合金承重鼓,以及
高高在上,金属骨架的镂空失真吉他
弧度流畅:一些比和谐号更加和谐的和弦
「请停止收听未出席此次会议的乐队」
你不知道军队如何穿越皲裂的荒野
漆黑的靴如何纤尘不染。你不知道
人在夏天会死去——像孩子一样
有未曾谋面的痛与欢愉
赤地千里。你不曾拥有湿润的空气
黑色的烟尘下云正在干涸。你不知道
不可生长树木的土地之宿命
无力偿还的诗人该当何罪?
八月的夜里,青铜的神明冉冉升起
蓝色 [000B]
- July 29, 2021
蓝色 [000B]
- July 29, 2021
这个傍晚,一些树木不再停驻
爬行的航空器沉没于苇荡。水花
开放在皱的玻璃上,伸长脖颈
倒下的树。激起水花的树。夜流如注。
我们不曾关注淡蓝色的月。
加上纯白的火花,空气里斑驳的气泡
这是两盏路灯编织的故事:泛泛而谈的
人造月光,沿街道流入图书馆的疆土
锈的书、咳喘的笔、瘦骨嶙峋的柜
夜色缓慢弯曲。月光干涩
肋骨上,如歌的疼痛奏入胸腔
深海的鱼流动在荒芜的井底
空中云的语言动荡
洪波涌起。这样的夜里我们低声言语
我们不曾看见深蓝色的火。
念 [000A]
- July 03, 2021
念 [000A]
- July 03, 2021
折断在电波与铁轨的交缝,勾出
环形山成枯萎的白,刺人的灰:马赛克
铁的边缘,锋利的指涉
辛辣,不忿,出自山林的火气烟尘
汽笛去处,一方白帕远掷
如飞鸟衔鱼,箭穿枯骨
君不见者:尺素不复,长江不渡,草原成焦土
长歌当哭的是舟子
枝竹敲碎江面,流月成千片
这无云的夜晚,山
自砖瓦和混凝土间凸显
要小心啊。投河者挣扎间轻语
这一路远山如夜,一苇难渡
我是如此鸣响 [0009]
- May 19, 2021
我是如此鸣响 [0009]
- May 19, 2021
柏油路、道路标线、乳白的车轮溅上泥点
栏杆边上江水太凉。钟在摇晃
所以一路上我从未想过回望,那钟,那鼓
茫茫的远方一些鹭鸶飞了起来
手指。钟。鼓。红色的血液里是一样的震颤
拨弄着主动脉,交感神经,漫长的年轮和枝叶
要如何呼吸呢?要如何呼吸呢?
诗歌并不关心诗人青绿的肺泡。
一片扭动的肾,这些丑陋的东西
几乎无法负担稻谷,树木和土地
钟。鼓。转动的轮胎并不哀伤
这曾是风生长的地方,夜幕下我们的城
我没有适合下雨天的衣服 [0008]
- May 07, 2021
我没有适合下雨天的衣服 [0008]
- May 07, 2021
空空叩叩
大石顺风流向车窗之后
竹枝之燃烧并不以风格为准
某处,蓑衣丢下了鱼筌
偏偏水流在此刻绷紧了
明月化了枝上的蓝色枫叶形状
珊瑚流连于缤纷洋流
轻言细语间,飞鱼也浪漫得搁浅
古城公园,黑色的秋千挂不住桥面
半边雨伞倒悬
躺倒的摩天轮能改建成旋转木马吗?
我问,高坐天台的王
片刻间山影坠入梦境
夜里,弹坑睁着波澜和浮上水面的浅
万里奔袭不配一杯长岛冰茶和东湖的雪
梧桐睡着之后
流过眼的只有疼痛
光呢?鼻子呢?车轮呢?
一件衬衫的生长也不必向上
龟背竹盛不下香樟
是一栋池水不愿记得的
光晕与拿铁走进广场
一场大火闪烁塑料桌椅
影院的废墟上
复生的草原有露水涌现
家与家中之家和无家之家 [0007]
- May 07, 2021
家与家中之家和无家之家 [0007]
- May 07, 2021
蓝色的月亮,直径三十厘米
迈着惨白的水泥制电线杆,跌撞
在人行横道与道路标线之间
寂静的夜啊。让色彩都飞走吧
我不会呼唤的。我不会呼唤的。我不会呼唤的。
可是,我不能不为暗淡下来的山林哭泣
红绿灯。窨井。我的私人海洋只有一点五平方米
多么黑暗啊。夜晚的山,巨人,蜷成一团的巨人
哈,而你都没有见过山顶呢,那些生了锈的弹坑
怎么了?那是我们的家呢,铺着绿丝绒,流着奶与蜜的
你可知道:有人为它的落成典礼献上花朵时
冲破土地的庸俗诗意也不再让我疼了
只是,飞鸟还想迁徙,树木还想倒立
让我不懂的是草原。海洋的尽头
一个让我无法发问的个体
问些什么?银色的勺子吗?金色的眼镜吗?
还是问些风雨?问些雪人与星星?
没有街道,没有丘陵,没有天空的风暴中
我该去问问不停涌现的露水
露水,你怎么了?
露水,你来做什么?
露水,你凭什么在草原上显现?
露水,你……
草原,在黑夜里,努力盛着一些死掉的空气
月亮。山林。我们的家。露水。
我多希望它们不是深蓝色的。
忏悔者的雕像张开手臂 [0006]
- April 14, 2021
忏悔者的雕像张开手臂 [0006]
- April 14, 2021
水汽氤氲的林中,意象
扇动它的耳朵。这无关一切颤动、震荡与破碎
不过是连绵阴雨沦陷了言语的江山故国
于是格律坍圮。韵脚和破碎的段落轻抚
规则与标准牵在一起的柔软手指,然后用力
啼哭声中,惊起一滩雪白的词句
游进鱼篓里的诗歌,湿润、黏滑、不可言说
夏天,公园的长椅上永恒的文字复活
以粉色而稀薄的情态
降临祂伟大的居所:秋千上摇摆的沉默
七万次心跳后,语言才重新凝聚,但
下午快结束了。空气柔软
锐利,艰涩,交错,都散了
思考崩塌以后,语言本应如此纯粹地流淌
可是水流尽头悲伤压倒一切
逆流而上时叫不出一个称谓
叫不出一个称谓。
所以水波碰撞彼此,弯了、断了
这粘稠的诉说再度成为失败的尝试
然而,在诗歌这个隐喻中的隐喻里
两个标点仍然可以拥抱彼此
这时文字开始歪斜,段落开始有序
它们等待三流诗人的终结,直到最后的
失律,然后归去
This website is built using Weibian. Except for the poems, all content is licensed under CC BY-NC-SA 4.0.