「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での実装を元にサクッと動くコードを生成してくれました!スゴイ!