2024-12-06
Zoomのミュート判定で活躍した、1993年誕生、Macのアプリの自動化に使えるプログラミング言語、AppleScript。せっかくなので、緯度経度精度を1文字列で表現するGeo3x3を実装してみました。これでGeo3x3実装は107言語目です!


「taisukef/Geo3x3: a simple geo-coding system for WGS84」
特徴的なのは変数の代入文がイコール(=)を使わず、set x to を使うところ。
構造をendで閉めたり、if文にthenがあったりとBASICっぽさがあります。

on encodeGeo3x3(lat, lng, level) if level < 1 then return "" end if set res to "" set lng2 to lng if lng >= 0 then set res to "E" else set res to "W" set lng2 to lng2 + 180 end if set lat2 to lat + 90.0 set unit to 180.0 repeat level - 1 times set unit to unit / 3 set x to lng2 div unit set y to lat2 div unit set res to res & (x + y * 3 + 1) set lng2 to lng2 - x * unit set lat2 to lat2 - y * unit end repeat return res end encodeGeo3x3 log encodeGeo3x3(35.65858, 139.745433, 14)

整数除算divやmod、文字列に関する操作をChatGPTに聞けば即解決するので、Dartの実装を参考にサクサク実装できました。


「AppleScript - ChatGPT」

こちらがAIとの会話ログ。疑問にすぐに答えてくれるので楽です。実装とテストが終わってから、そういえば翻訳が得意なChatGPTくんなら、実装もできちゃうかも?と思って試したら、少し無駄があるものの、JaavaScriptでの実装を元にサクッと動くコードを生成してくれました!スゴイ!

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS