From 3215e1d36e55661a20727e5e12c39109a3f06f6e Mon Sep 17 00:00:00 2001 From: "Matsuura Tomoya(Windows)" Date: Sat, 23 Aug 2025 00:07:56 +0900 Subject: [PATCH] [obsidian] vault backup: 2025-08-23 00:07:56 --- content/Erlang.md | 2 ++ content/{Untitled.md => Gleam.md} | 0 content/Gream.md | 28 ++++++++++++++++++++++++++++ content/Koka.md | 19 +++++++++++++++++++ content/Moonbit.md | 18 ++++++++++++++++++ content/Rhai.md | 6 ++++++ content/Rust.md | 9 +++++++++ 7 files changed, 82 insertions(+) create mode 100644 content/Erlang.md rename content/{Untitled.md => Gleam.md} (100%) create mode 100644 content/Gream.md create mode 100644 content/Koka.md create mode 100644 content/Moonbit.md create mode 100644 content/Rhai.md diff --git a/content/Erlang.md b/content/Erlang.md new file mode 100644 index 00000000..60699fa0 --- /dev/null +++ b/content/Erlang.md @@ -0,0 +1,2 @@ +#programming-language + diff --git a/content/Untitled.md b/content/Gleam.md similarity index 100% rename from content/Untitled.md rename to content/Gleam.md diff --git a/content/Gream.md b/content/Gream.md new file mode 100644 index 00000000..bc5c90b7 --- /dev/null +++ b/content/Gream.md @@ -0,0 +1,28 @@ +#programming-language + +[[Rust]]っぽいシンタックスだが、[[Erlang]]の[[BEAM VM]]もしくは[[JavaScript]]をターゲットとして コンパイルされるスクリプティング言語。 + + +Use構文が面白い。ちょっと[[Computation Expression]]でSeqを使った時とか、[[Koka]]のWith構文と似た仕組みと見える +[Use - The Gleam Language Tour](https://tour.gleam.run/advanced-features/use/) + +```rust +pub fn with_use() -> Result(String, Nil) { + use username <- result.try(get_username()) + use password <- result.try(get_password()) + use greeting <- result.map(log_in(username, password)) + greeting <> ", " <> username +} + +pub fn without_use() -> Result(String, Nil) { + result.try(get_username(), fn(username) { + result.try(get_password(), fn(password) { + result.map(log_in(username, password), fn(greeting) { + greeting <> ", " <> username + }) + }) + }) +} +``` + + diff --git a/content/Koka.md b/content/Koka.md new file mode 100644 index 00000000..a3db2261 --- /dev/null +++ b/content/Koka.md @@ -0,0 +1,19 @@ +#programming-language + +[The Koka Programming Language](https://koka-lang.github.io/koka/doc/index.html) + +[[MicroSoft]]のチームが研究しているプログラミング言語。 + +名前(KOKA=効果)のとおり、[[代数的エフェクト]]が明示的な組み込みシンタックスで扱える。 + +中括弧の囲みをインデントで代用できて、JSっぽくもPythonっぽくも書ける。シンタックス的に推測できれば無名関数を省略して書けたりと、かなり構文糖衣が積極的に使われている。 + + +With構文が面白い。[[Haskell]]のIOモナドで`<-`をチェーンしていくようなやつが、単に高階関数を受け取る関数の順番を入れ替える構文として実装されてるので、ネストが深くなっていくのを避けられる。 + +```koka +with x <- f(e1,...,eN) + +//equal to +f(e1,...,eN, fn(){ }) +``` diff --git a/content/Moonbit.md b/content/Moonbit.md new file mode 100644 index 00000000..d1ce9051 --- /dev/null +++ b/content/Moonbit.md @@ -0,0 +1,18 @@ +#programming-language + +[[Rust]]っぽい構文とシステムから、メモリ管理だけはGCに任せて[[WebAssembly]]ファーストな言語を設計してみましたみたいなやつ + +[MoonBit](https://www.moonbitlang.com/) + + +現状のコンパイラは[[OCaml]]で書かれてるっぽい。 + +[GitHub - moonbitlang/moonbit-compiler](https://github.com/moonbitlang/moonbit-compiler) + + +> 元 Meta で BuckleScript | [[ReScript]] を開発していた [[Hongbo Zhang]] 氏がチーフアーキテクト。 + +[自分が Moonbit 言語について知っていること](https://zenn.dev/mizchi/articles/practical-moonbit) + +あ、そうなんだ + diff --git a/content/Rhai.md b/content/Rhai.md new file mode 100644 index 00000000..e8dbf1d9 --- /dev/null +++ b/content/Rhai.md @@ -0,0 +1,6 @@ +#programming-language + +[[Rust]]で、かつRust言語のいいところを取り込んだ[[Lua]]みたいな埋め込みやすい言語を作ってみたらこうなる、みたいなやつ + + +[Rhai – Embedded Scripting for Rust](https://rhai.rs/) \ No newline at end of file diff --git a/content/Rust.md b/content/Rust.md index f6676f2f..d2d3e22b 100644 --- a/content/Rust.md +++ b/content/Rust.md @@ -2,3 +2,12 @@ date: "2023-09-01T19:08:25+0900" --- #tools #software + + +## Rustから影響受けたっぽいスクリプティング言語 + +- [[Gluon]] +- [[Rune]] +- [[Rhai]] +- [[Moonbit]] +- [[Gream]] \ No newline at end of file