---
title: 予約語が英単語なのが気に食わない
date: 2024-07-30T04:32:03.000Z
updated: 2026-01-08T14:50:47.514Z
tags:
  - glisp
url: https://baku89.com/ja/%E4%BA%88%E7%B4%84%E8%AA%9E%E3%81%8C%E8%8B%B1%E5%8D%98%E8%AA%9E%E3%81%AA%E3%81%AE%E3%81%8C%E6%B0%97%E3%81%AB%E9%A3%9F%E3%82%8F%E3%81%AA%E3%81%84
---

# 予約語が英単語なのが気に食わない

[ユニコード戦記](/%E3%83%A6%E3%83%8B%E3%82%B3%E3%83%BC%E3%83%89%E6%88%A6%E8%A8%98)を読んだっけ、プログラミング言語におけるラテン文字中心主義が気に食わなくなってきた

ASCIIコードの中でも約物や記号を使いたい。とはいえ、それもまたラテン語の活版文化の中で生まれたものではあるけれど。次点として、数学記号を使う策はどうかな

### 予約語

- 関数宣言: `=>`

- return: `return`

  - 思いつかない...
  - `<-` とか?
  - `(=> (T) (x: Number): Number (* x x))`

**Prelude**（グローバルスコープ）\
この辺は[Julia](https://docs.julialang.org/en/v1/base/numbers/)を参考にしてみたい。もちろん従来の`PI`などを用いてのアクセスも可能

- All型（TypeScriptでいう `unknown`）: `***`
- Never型（TypeScriptでいう `never`）: `_|_`
- 数値型: `ℝ`
- 円周率: `π`
- `PI * 2`: `τ`
- 自然対数: `ℯ`
- 度数法変換: `°`
- 無限大: `∞`

```
{** = (=> (x: ℝ, exp: ℕ)
          (if (= x 0) 1 (** x (dec exp))))
 (** 2 4)}
```

結構かわいくない?

根本的な解決方法は、あくまでそういう名前のシンボルとして宣言すること。ユーザーは使っている言語の好きな名前でエイリアスを作ることができる。Preludeの中身についてはこの感じでOK。ただ、関数宣言（`=>`）は特殊構文になるので、この方法では解決できない。

[#glisp](glisp)
