見出し画像

なでしこさんで色のリスト作成

今週も頭が悪く、怠け続けてしまい、書きたいことを書くための作業時間が取れず。
仕方ない、今日も元気に雑プログラムで繋いでいきますよ。

今回やったこと

なでしこで、システムで定義された色のリストを出力する。

プログラム

色のリスト作成 (プログラム貯蔵庫)

ポイント

システム関数が色を表すかの判定

●(Aを)色判定とは
  Aで1文字右部分が「色」と等しいかを戻す。
ここまで。

システム関数の名前を受け取り、その戻り値が色を表すかを判定する関数を用意する。
今回は、単純に名前が「色」で終わるかで判定している。

テーブルの枠組みの用意

「TABLE」のDOM部品作成してDOM親部品設定。
テーブルヘッダ欄は「THEAD」のDOM部品作成。
テーブル親は「TBODY」のDOM部品作成。
テーブルヘッダ欄にDOM親部品設定。
テーブルヘッダは「TR」のDOM部品作成。
["システム関数", "返り値", "色"]を反復
  テーブルヘッダにDOM親部品設定。
  「TH」のDOM部品作成してDOM親部品設定。
  対象のラベル作成。
ここまで。

テーブルを表す table 要素を作る。
その中に thead 要素と tbody 要素を入れる。
その thead 要素の中に、ヘッダ行を表す tr 要素を入れる。
その中に、ヘッダを表す th 要素を入れる。

th 要素の作成時は、同じような構造を並べるので、「反復」を用いて処理をまとめた。

色のリストの作成

システム関数一覧取得して{関数}色判定で配列フィルタ。
それを反復
  「色は{対象}」をナデシコする。
  テーブル親にDOM親部品設定。
  テーブル行は「TR」のDOM部品作成。
  それにDOM親部品設定。
  「TD」のDOM部品作成してDOM親部品設定。
  対象のラベル作成。
  テーブル行にDOM親部品設定。
  「TD」のDOM部品作成してDOM親部品設定。
  色のラベル作成。
  テーブル行にDOM親部品設定。
  「TD」のDOM部品作成。
  それの「背景色」に色をDOMスタイル設定。
ここまで。

システム関数一覧取得」で、システム関数の名前のリストを取得する。
配列フィルタ」で、その中から色を表すと思われるものを抽出する。
抽出した名前ごとに「反復」し、テーブルに行を追加していく。

ナデシコ」で対象の名前が表すシステム関数を実行し、その返り値を取得する。
テーブルに行を追加し、システム関数の名前と返り値をテキスト (ラベル) で入れる。
さらに、背景色をその色にする列も作る。

今回踏んだNG集

コードの動作確認は、Web簡易エディタ (v3.7.13) で行った。

色を表しそうなシステム関数のリストを変数に入れようとする

●(Aを)色判定とは
  Aで1文字右部分が「色」と等しいかを戻す。
ここまで。

色リストはシステム関数一覧取得して{関数}色判定で配列フィルタ。

を実行すると、

[エラー][文法エラー]main.nako3(5行目): 未解決の単語があります: [関数『システム関数一覧取得』して] 次の命令の可能性があります: - A(で|の)B(を|について)配列フィルタ

というエラーになった。

「ナデシコ」で戻り値を直接取得しようとする

「黒色」をナデシコして表示。

を実行すると、

[実行時エラー]main.nako3(1行目): 不完全な文です。単語『黒色』が解決していません。

というエラーになった。
また、

●(Aの)値とは
  Aを戻す。
ここまで。

「黒色の値」をナデシコして表示。

を実行すると、空文字列が出力された。

ナデシコ」はプログラムを実行するだけで、評価結果を返す命令ではないようである。

「ナデシコ」の使用後「DOM親要素設定」をせずに「DOM部品作成」する

『値は「ほげ」』をナデシコする。
値のラベル作成。

を実行すると、「ほげ」が通常実行結果がされる場所ではなく、ページの最下部に表示された。

「ナデシコ」を用いると、なぜかDOM親要素が body 要素に設定されるようである。

おわりに

なでしこで、標準で定義されている色のリストを出力できた。

WEB色見本 原色大辞典 - HTMLカラーコード
などで紹介されている、ブラウザで定義されている色に比べたら少ないようである。
とはいえ、やたらと定義を増やしてもわかりにくくなるかもしれないし、使いたければブラウザで定義されている色の名前や色のRGB表現などを直接書けばいいので、悪くはないだろう。

いいなと思ったら応援しよう!

コメント

コメントするには、 ログイン または 会員登録 をお願いします。
なでしこさんで色のリスト作成|みけCAT
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1