コンテンツにスキップ

利用者:Takym/プログラミング言語サンプルコード

このページではプログラミング言語ページのサンプルコードの表示方法の統一についてまとめる。

方針[編集]

表示方法の統一方針案[編集]

A案[編集]

  1. 保存されたサンプルコードを表示するモジュール(内部的にはこちらのテンプレートを使用しています。)を作成し、同じサンプルコードをどのページからでも表示できる様にします。どのページからでも表示できる様にするのは下記の3に関連します。
  2. プログラミング言語のページの冒頭や概要表等にモジュールを呼び出す記述を追加します。
  3. サンプルコードを集約させたページを作成します。これはプログラミング言語に関して記述されたページを探す利便性を持つと思います。(関連するノート

サンプルコード掲載方針案[編集]

A案[編集]

  1. その言語の特徴を中立に表している。利点と欠点の両方を含まなければならない。
  2. 適宜コメントを含んでも良い。ただし、過剰にコメントを入れる事により可読性を下げてはならない。
  3. 出典を明確にし、独自研究を含まない。
  4. 1行~20行以内の短いコードである。
  5. その言語の特徴を表しているのであれば、Hello World プログラムでも可。標準出力に出力するサンプル文字列は Hello World である必要はない。

関連するページ[編集]

関連する記事[編集]

関連する議論[編集]

関連するカテゴリ[編集]

メモ[編集]

  • このページの趣旨とは異なるが、擬似言語疑似コードは統合した方が良いと思う。
  • モジュールを用いないで、テンプレートだけで同じサンプルコードを展開できる様にする。
  • 日時:Takym会話) 2021年11月12日 (金) 06:52 (UTC)完了。
  • 未了...サンプルコードの作成
  • 日時:Takym会話) 2021年11月13日 (土) 10:27 (UTC)C言語のサンプルコードを作成、テンプレート化は未完。
  • 日時:Takym会話) 2021年11月24日 (水) 04:15 (UTC)C#のサンプルコードを作成。動作は未確認。上記C言語の動作も未確認。
  • 日時:Takym会話) 2021年11月24日 (水) 09:07 (UTC)C#のサンプルコードを書き換え&動作確認。
  • 疑問:LINQのサンプルコードを作成する場合、C#で書くかどうか。
  1. LINQ は言語ではなく機能なので作成しない。
  2. 複数の言語を併記する。
  • 話が逸れるが、C# は機能が多いが、サンプルコードにはどの機能を入れるべきか考える必要がある。
  1. IAsyncEnumerable

サンプルコード[編集]

C言語 - main.c

#include <stdio.h>
#define BEGIN           int main(int argc, char *argv[]) {
#define END             }
#define IF(condition)   if (condition) {
#define ELIF(condition) } else if (condition) {
#define ELSE            } else {

BEGIN
  IF(argc <= 1)
    printf("There are no arguments.\r\n");
  ELIF(argc == 2)
    printf("There is one argument.\r\n");
  ELSE
    printf("There are %d arguments.\r\n", argc - 1);
  END
END

マクロを使うと文法を大きく変える事ができる。

C# (10.0 以上) - Program.cs

using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using static System.Console;
class Program {
  static async Task Main() {
    await foreach (var item in from x in LoadDataAsync() select x?.ToUpper()) {
      WriteLine(item ?? "<<値は null です。>>");
    }
  }
  static async IAsyncEnumerable<string?> LoadDataAsync() {
    yield return await Task.Run<string?>(string? () => null);
    yield return await Task.Run(() => "hello world");
    yield return await Task.Run(() => $"0x{123:X2}"); // 数値に書式設定している。
  }
}

LINQ非同期処理を混在させた例。実行するにはSystem.Linq.Asyncをインストールする必要がある。名前空間の宣言とアクセス修飾子は省略している。