平成18年 4月30日(日):初稿 |
○#計算(#代入(&STR,[かな]),#代入(&STR,#S(#S(#S(#S(#S(#S(#S(#S(#S(#S(#S(#S(#S(#S(#S(#S(#S(#S(#S(#S(#S(#S(#S(#S(#かな(#全角(&STR)),”ぎゃ”,”GYA”),”ぎゅ”,”GYU”),”ぎょ”,”GYO”),”じゃ”,”JA”),”じゅ”,”JU”),”じょ”,”JO”),”びゃ”,”BYA”),”びゅ”,”BYU”),”びょ”,”BYO”),”ぴゃ”,”PYA”),”ぴゅ”,”PYU”),”ぴょ”,”PYO”),”りゃ”,”RYA”),”りゅ”,”RYU”),”りょ”,”RYO”),”しゃ”,”SHA”),”しゅ”,”SHU”),”しょ”,”SHO”),”ちゃ”,”CHA”),”ちゅ”,”CHU”),”ちょ”,”CHO”),”にゃ”,”NYA”),”にゅ”,”NYU”),”にょ”,”NYO”)),#代入(&STR,#S(#S………(以下省略) と言う今村式かな→ヘボン式ローマ字置換式を自分なりに解読に努めてみました。 ○#計算という関数は全く使ったことが無く、桐ヘルプによると #計算( val1 , … , valn ) コンマで区切られた式 vali を先頭から順に計算して、最後の式で求められた値を返します。 vali がすべて同じデータ型である必要はありません。 とのことです。 ○全体の構造としては、 #計算(#代入(),#代入(),#代入(),#代入(),#代入(),#代入(),………) となっており、#代入が全部で13個ありますが、順次#代入の計算がなされ、最後の#代入の結果を表示するのかなと言う感じです。全く自信はありませんが(^^;)。 ○#代入(&STR,[かな])ですが、 &STRは、桐を起動すると同時に宣言され、桐を終了すると同時に削除される組み込み変数で、とりあえず文字列を格納したいとき自由に使えるものであり、#代入によって、&STRに[かな]のデータが格納されます。 ○#S(#かな(#全角(&STR)),”ぎゃ”,”GYA”) ですが、#Sは、#文字置換の英語表示であり、この場合、#かな(#全角(&STR))の中の”ぎゃ”を”GYA”と置換します。 ○#S(#S(#かな(#全角(&STR)),”ぎゃ”,”GYA”),”ぎゅ”,”GYU”) ですが、#S(#かな(#全角(&STR)),”ぎゃ”,”GYA”)は、#かな(#全角(&STR))の中に、”ぎゃ”がない場合は、#かな(#全角(&STR))がそのまま残りますので、この中に”ぎゅ”があれば”GYU”に置換します。 ○同様にして #S(#S(#S(#かな(#全角(&STR)),”ぎゃ”,”GYA”),”ぎゅ”,”GYU”),”ぎょ”,”GYO”) は、#かな(#全角(&STR))の中に、”ぎゃ”も”ぎゅ”も無ければ#かな(#全角(&STR))がそのまま残りますので”ぎょ”があれば”GYO”に置換し、以降同様にして、”にょ”を”NYO”と置換し、以降#代入によって同様にして”みゃ”から”ぼ”、”ぱ”から”-”、”あ”から”と”と置換していきます。 ○#代入(&STR,#COND(#文字位置(&STR,”っ”)>0,#COND(#SSTR(&STR,#文字位置(&STR,”っ”)+1,1)=”C”,#S(&STR,”っ”,”T”),1,#S(&STR,”っ”,#SSTR(&STR,#文字位置(&STR,”っ”)+1,1))),1,&STR)) が難しそうですが、#CONDは#条件選択、#SSTRは#部分列であり、&STRに”っ”が含まれており、”っ”の一つ後の文字が”C”の場合は、”っ”を”T”に、その他の場合は”っ”の一つ後の文字に置換し、&STRに”っ”が含まれて居ない場合はそのままにすると言う命令のようであり、その後の#代入は、昨日紹介した日本旅行のヘボン式ローマ字一覧表での以下の処理をしているようです。 1.長音表記 2000年4月1日より旅券面氏名の表記について、現行の『ヘボン式表記』に加えOHによる記載も認められるようになりました。 申請者が氏名表記について「O」と「OH」を選択することができます。詳しくは各都道府県旅券申請窓口までお問合せください。 氏名のフリガナ 原則 改定後可能となる表記 例 原則 改定後の表記 オオ O OH 大野(オオノ) ONO OHNO オウ O OH 河野(コウノ) KONO KOHNO ※同一家族で「原則」と「改定後の表記」を使い分けると、別家族と思われる可能性があるので家族の中ではどちらかに統一されることをお勧めいたします。 2.発音 ヘボン式では b ・ m ・ p の前に n の代わりに m をおく。 NAMBA 難波(なんば) HOMMA 本間(ほんま) SAMPEI 三瓶(さんぺい) 3.促音 子音を重ねて示す。 HATTORI 服部(はっとり) KIKKAWA 吉川(きっかわ) 但し、チ(CHI)、チャ(CHA)、チュ(CHU)、チョ(CHO)音に限り、その前にTを加える。 HOTCHI 発地(ほっち) HATCHO 八町(はっちょう) ○私の以上の解読が正しいかどうか全く自信が無く、特に#計算の理解が不十分なため、#代入を何故上記のように分けて使うのかが私には不明ですが、関数だけでこれほどの処理が出来ることにただただ驚きです。 ○この式を十分に理解できれば、桐の関数にはないが実務で必要性のある#算数字(漢数字を算数字に変換する計算式、桐には算数字を漢数字に変換する関数#漢数字はあるもその逆がありません)をイベントを使わないでも自作出来そうです。 以上:2,364文字
|