タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

programmingとrustに関するn-karasuのブックマーク (1)

  • Rustマクロの衛生性はどのように実現されているか(1/2) 識別子に関する衛生性 - 簡潔なQ

    概要: Rustマクロは2つの意味で衛生的である。その衛生性の説明とともに、それを実現するためのコンパイラの仕組みを説明する。 Rustマクロの2つの衛生性 Rustマクロ (ja) は次の2つの意味で衛生的(hygienic; 健全ともいう)である。 マクロ内で導入される変数名と、マクロ呼び出し側の変数名が衝突しない。(Lispマクロの意味での衛生性) 構文の優先順位の違いによる非直感的な挙動が発生しない。 この記事では、識別子に関する衛生性を説明する。(構文の優先度に関する衛生性については次記事を参照) 識別子に関する衛生性とは 次のようなプログラムが直感的な動作をするのが、識別子に関する衛生性である。 macro_rules! copy_swap { ($x:expr, $y:expr) => {{ let t = $x; $x = $y; $y = t; }}; } fn main

    Rustマクロの衛生性はどのように実現されているか(1/2) 識別子に関する衛生性 - 簡潔なQ
  • 1