[obsidian] vault backup: 2025-08-23 00:07:56
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				Build / build (push) Successful in 12m58s
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	Build / build (push) Successful in 12m58s
				
			This commit is contained in:
		
							
								
								
									
										2
									
								
								content/Erlang.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								content/Erlang.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
#programming-language 
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										28
									
								
								content/Gream.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								content/Gream.md
									
									
									
									
									
										Normal file
									
								
							@@ -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
 | 
			
		||||
      })
 | 
			
		||||
    })
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										19
									
								
								content/Koka.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								content/Koka.md
									
									
									
									
									
										Normal file
									
								
							@@ -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)
 | 
			
		||||
<body>
 | 
			
		||||
//equal to 
 | 
			
		||||
f(e1,...,eN, fn(){ <body> })
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										18
									
								
								content/Moonbit.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								content/Moonbit.md
									
									
									
									
									
										Normal file
									
								
							@@ -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)
 | 
			
		||||
 | 
			
		||||
あ、そうなんだ
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								content/Rhai.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								content/Rhai.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
#programming-language 
 | 
			
		||||
 | 
			
		||||
[[Rust]]で、かつRust言語のいいところを取り込んだ[[Lua]]みたいな埋め込みやすい言語を作ってみたらこうなる、みたいなやつ
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
[Rhai – Embedded Scripting for Rust](https://rhai.rs/)
 | 
			
		||||
@@ -2,3 +2,12 @@
 | 
			
		||||
date: "2023-09-01T19:08:25+0900"
 | 
			
		||||
---
 | 
			
		||||
#tools #software 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Rustから影響受けたっぽいスクリプティング言語
 | 
			
		||||
 | 
			
		||||
- [[Gluon]]
 | 
			
		||||
- [[Rune]]
 | 
			
		||||
- [[Rhai]]
 | 
			
		||||
- [[Moonbit]]
 | 
			
		||||
- [[Gream]]
 | 
			
		||||
		Reference in New Issue
	
	Block a user