getenv は string を返すのか?問題 - SRFI に getenv を提案しようその12

OSが提供する環境変数は NULL 終端されたバイト列であって、必ずしも Scheme の世界の String に変換できるとは限らないよね。
getenv の戻り値は bytevector の方が良いのじゃない?という話題。


getenv vs. locale
これに対して shiro さんが戻り値は String なのを維持しつつ、3つの方法を挙げてくださっている。


(A)変換できないときは例外を上げる
(B)変換できないときは、戻り値で変換できないと言うことを示す
(C)オプショナルな filter 手続き引数を用意して、ユーザーに変換を任せる


個人的には厳密にやるならば(C)。
ただし getenv の戻り値を「処理系が String にできないという」用途やケースが多くなさそうなので (A) がバランスが良いのではないかと思っている。
ということを ML に投げないとなあ。

追記

短く書いて投げた。伝わるだろうか。