はじめに
この文章は配列指向プログラミング言語BQNの使い方をまとめたものです。 筆者はそもそもAPLを使ったことがないような初心者ですが BQNはおろか現代的なAPLに関する日本語のページがほぼ見当たらない現状では、自分で色々とメモしたものを日本語でまとめた直しただけでも役に立ちそうなので、自分で作ることにしました。 まあ、メモ付きリンク集程度のものになるでしょう。
用語について
monadic
この言葉は通常Haskellで有名なmonadに関することを意味するものだが、APLの文脈では「1引数」を意味する。 この文章では1引数の意味で使用する。 ちなみに「2引数」に対応する語句は dyadic である。
operator
通常は、関数と類似しているが構文的な差異を持つものを指すもの(sin
は関数で+
は演算子)だが、APLの文脈では関数を引数に取るもの、すなわち高階関数(の一部)を指す。
BQNではmodifierという語をoperatorの意味で使っている。
この文章ではいわゆる演算子を(も)関数と呼び、高階関数にはmodifierを当て、この語はできるだけ使わないようにする。
コードの見栄えに関して
color highlighten には highlight.js1 with highlightjs-bqn2 を、書体には BQN3863 を使用しているが、何かしらの不具合でグリフの文字化けが起こってしまうようだ。 この問題はグリフ間にスペースを挟むことで回避できそうなので、そのようにコードを整形してある。
( 𝕨𝕊𝕩 ) 𝕊 ( 𝕨𝕊𝕩 )
((𝕨𝕊𝕩))𝕊((𝕨𝕊𝕩)) # 上の式から括弧まわりの空白文字を消しただけなのだが🤷
奇妙なところにスペースが空いているのはそういう理由なのでご理解いただきたい。
設問に関して
いくつかの設問には🧑🎓マークを付けている。これはその設問が出現するまでに説明した内容では解答はできないことを意味する。 例えば関数グリフの章の問題で解答にmodifierが使われているなど。
最後に
どうも「はじめに」は作れても「おわりに」は作れないようなので、ここに書いておく。
Happy Array Programming!