[StarLogo/fujim2]
[ トップ ]   [ 差分 | バックアップ | リロード ]   [ 一覧 | 単語検索 | 最終更新 | ヘルプ ]

CONTENTS

  • FrontPage
  • StarLogoについて
  • こんな人におすすめ
  • StarLogoのインストール
  • StarLogoの簡単な入門
  • StarLogo TIPS
  • StarLogoのサンプル解説
  • StarLogo関連リンク集
  • OpenStarLogo
  • StarLogoTNG
  • StarLogoNova
  • 実験・研究
  • Petit-Hack
  • 文献
  • ご意見ご感想など
  • このページについて

最新の10件
2019-12-28
  • タートルグラフィックス
2019-01-27
  • FrontPage
  • StarLogo日本語化
  • Petit-Hack
  • このページについて
  • コメント/ご意見ご感想など
  • ご意見ご感想など
  • 文献
  • 実験・研究
  • こんな人におすすめ

リスト処理

Last-modified: 2019-01-27 (日) 03:35:34 (1518d)

StarLogo TIPS

StarLogo-Tips-ListProsessingTitle.PNG

StarLogoは基本機能として「リスト構造」を取り扱う機能を備えています。

この機能は単にStarLogoの元になった言語のなごりというわけではなく、 StarLogoシステムが多くのタートルに一度に命令を下したり、全ての パッチに同時にある処理を行うという場合に、その対象のタートルや パッチの「集まり」を表すのに使われているとても重要な機能です。

また、「リスト」というのは、とても柔軟なデータ構造で、多くのデータ構造は ほとんどこのリスト構造を限定して使う事で実現可能だと思います。


  • リストとは
    • リスト構造の定義
    • アトムの例
    • リストの例
  • リスト処理の基本
    • リストの分解
    • first
    • リストの合成
    • list
    • fput
  • 実行確認

リストとは †

↑

リスト構造の定義 †

リストは次の様に[記号と]記号の間に「リスト要素」と呼ばれる データを並べたものです。

 [ リスト要素 リスト要素 リスト要素 ・・・・ ]

このリスト要素になれるのは、数値、文字列、記号など、リスト処理の範疇 ではこれ以上分解できない「アトム」と呼ばれるもの*1と、「リスト」そのもの です。

↑

アトムの例 †

123や3.1415、Helloや、"Happy New Year"

などです。

↑

リストの例 †

 [1 2 3 4]や、[a b c d]や、[[1 2] [a b] ["Hello" "Logo"]]

など です。

↑

リスト処理の基本 †

リスト処理の基本はリストの「分解」と「合成」です。

StarLogoではこの「分解」と「合成」のための便利な手続きを用意しています。

↑

リストの分解 †

リストの分解のもっとも単純なものは、

リストの「先頭要素」とその先頭要素を取り除いた「残りのリスト」に分ける

というものです。

ここで、「先頭要素」は、アトムになるか、リストになるかわかりませんが、残り は、必ずリストになります(空リスト[]も含みます)。

↑

first †

StarLogoでリストの先頭を取り出すにはfirstという機能を使います。

first [a b c] ---> a

これが利用するには「そのリストが空でない」事が必要です。

また、「残り」の取出しには、butfirstという機能を使います。

butfirst [a b c] ---> [b c]
↑

リストの合成 †

↑

list †

リストを作る、もっとも単純な方法は listという機能を利用する事です。 listは2つの引数を持ち、その2つの引数を要素とするようなリストを作ります。

list 3 4 --> [3 4]
↑

fput †

first、butfirst、での分解の逆を行う機能がこのfputです。すなわち、

fput "a" [b c d]  --> [a b c d]

の様に使う事ができます。

↑

実行確認 †

ここに示した例は、Control Centerウィンドウ内のObserver Command Center内で、showコマンドを利用する事によって実際に 実行を確認することができます。

StarLogo-Tips-ListProsessingCC1.PNG

Counter: 420, today: 1, yesterday: 0

Link: StarLogo TIPS(1518d)

*1 LISP言語で使用している用語を使いました

添付ファイル: fileStarLogo-Tips-ListProsessingTitle.PNG 265件 [詳細] fileStarLogo-Tips-ListProsessingCC1.PNG 263件 [詳細]

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-01-27 (日) 03:35:34 (1518d)
Link: StarLogo TIPS(1518d)
Site admin: anonymous

PukiWiki 1.5.0 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji. Powered by PHP 5.6.40. HTML convert time: 0.015 sec.