Skip to content

[PROPOSE]:式形式の関数 #24

@taiseiue

Description

@taiseiue

式形式の関数

概要

関数の本文が一行の式に収まる場合に、以下のようにラムダ式のように波括弧やreturnを省略して関数を定義できるようにする。

number Pow(number x) => x * x;

requiresensuresなどとも併用できるようにする。

number Divide(number x, number y) requires(y != 0) ensures(return != 0) => x / y;

動機

関数の中身が一つの式で済むときでも、ラムダ式ではなく関数宣言をした方が安全だが、書き方を省略するためにラムダ式を使われるケースがあった。また、REPLで関数を定義しやすくするため。

詳細設計

以下の構文をとる。実装はラムダ式に同じ。

TResult identifier(args) <requires> <ensures> => body-expression;

欠点

前例

未確定の設計

Discussion

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestimplementedサンプル実装済みrelease-noteリリースノートに反映済み

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions