開始値から終了値までのシーケンシャルな値の入った1次元配列(1D List)を作成し、シャッフルするAppleScriptです。
もともとは、Shane Stanleyによる乱数シャッフルルーチンがあり、これにシーケンシャル値の作成部分を追加。最終的にはこのシャッフルした値をもとに文字列の入ったリストのシャッフルを行いました。そのための部品です。
# 結局、本ルーチンは不要だったので、そのままそっくり書き捨てになりました。文字列リストのシャッフルに、インデックスをシャッフルしないでも、処理対象データそのものをシャッフルさせればよかったので、不要ということに、、、、
途中まではCocoaの機能を用いて連番リストを作りかけていたのですが、自分の考えた範囲ではCocoaの機能を用いてメリットが生まれるような要素数(数万以上)のデータ処理を行う可能性が低そうだったので、連番生成はループで行っています。
AppleScript名:シーケンシャル値の1D Listを作成してシャッフル.scptd |
— – Created by: Takaaki Naganoya – Created on: 2019/10/15 — – Copyright © 2019 Piyomaru Software, All Rights Reserved — use AppleScript version "2.5" use framework "Foundation" use framework "GameplayKit" — requires macOS 10.12 use scripting additions set sList to makeShuffledSequantialNumList(1, 2014) of me –> {1949, 1356, 376, 1222, 1089, 550, …..} on makeShuffledSequantialNumList(fromNum, toNum) script spdL property nList : {} end script set (nList of spdL) to {} repeat with i from fromNum to toNum by 1 set the end of (nList of spdL) to i end repeat set anArray to current application’s NSArray’s arrayWithArray:(nList of spdL) set newArray to anArray’s shuffledArray() as list — requires macOS 10.12 return newArray end makeShuffledSequantialNumList |
More from my site
(Visited 64 times, 1 visits today)