だって、`car` から (All (a) (-> (Listof a) a)` を取りのぞくだけで、list が null? の場合とそうでない場合の場合分けを忘れた場合に動的に死ぬ自己を型レベルで予防できるんやで?
これ絶対いるでしょ。Haskell とかにある safe ライブラリとは次元が違うレベルで必要だと思うんだよなー。
だって、`car` から (All (a) (-> (Listof a) a)` を取りのぞくだけで、list が null? の場合とそうでない場合の場合分けを忘れた場合に動的に死ぬ自己を型レベルで予防できるんやで?
これ絶対いるでしょ。Haskell とかにある safe ライブラリとは次元が違うレベルで必要だと思うんだよなー。
やはり自分で作るしかない可能性はあるんだけど、これくらいのことは既に考えた人がいるという方向にかけたい。
私が始めてこれに気づいて提案しているとかありえないでしょ。
日本語だったらいくらでも Typed Racket の `car‘ に `(All (a) (-> (Listof a) a)` が存在することのデメリットを語り尽せるんだけど……。
理想は`#lang typed/racket/safe` みたいにできることなんだよなー。
Racket の Slack で Typed Racket の手続きってもっと安全にできるよね?既に安全にした手続きのライブラリとかってありませんか?
とかいう質問をしてきた。めっちゃ緊張している。英語が母国語だったらどれだけ楽だったか。
そして、簡潔に説明しすぎて誰も理解してくれない可能性があって怖い。
`(car '())` が許されるのやめて欲しいと本気で思う。こういうライブラリを書かなくてもいいんだったら書きたくないんだけど……。
これ Racket の Slack で質問した方がいいかもしれない……。明日やるか。
Typed Racket が微妙に型安全じゃないのが不満なんで、ライブラリ書いた。まだ `cadr` とかに対応してないんで、そこら辺は徐々に対応する。`/` は諦めてる。`quotient` と `modulo` はゼロ除算を弾けるんで弾いた方いいっしょとか思ってる。
https://git.tojo.tokyo/more-type-safe.git/tree/more-type-safe.rkt
Typed Racket の inst の略記法、初心者殺しな気がするんだよなー。慣れたら略記するのが楽かもしれんがちょっと抵抗がある。
Racket で `car` みたいなやつを置き換えたいときは、別にファイルを作ってそこに `car` の定義を書いて `require` をするだけでいいんか。無駄に新しい lang の定義をしようとして無駄な苦労をしていた。
人口が少ない分野でさらに細分化されていく……。これは Scheme 処理系……。
人口が少なめのところも共通してないか……?
それぞれの Lisp が異なることは実際に使ってみればすぐに分かるように、それぞれのメタルが異なることは実際に聴いてみればすぐに分かる。
やはり Lisp とメタルってなんか似てんじゃね。
どの Lisp も外野からは同じように見えるけどそれぞれ全然違うように、どのメタルも外野からは同じように見えるけどそれぞれ全然違う。
ジャンルが細分化されているという点で Lisp とメタルは似ている気がする(気のせい)
やっぱりたくさんクワイヤしてるやつが好きなんでシンフォニックメタルが好きな分野というしかない。
以前デスボイスには慣れたかなーって思ったけど結局あまりデスボイスのないメタルばかり聴いてるのでなんかそこはあまり合わないのかもしれん。
メタル好きなんだけど、シンフォニックメタルばっかり聴いてるのでメタルに詳しいかと言われると残念ながら詳しくはない感じ。
メタルのアルバムの一曲目から二曲目に繋がるアレ、なんかメタルあるあるっぽくて邦楽ではそういうことはあまりないと友人から聞いた。
短文の記事なのに誤字があるな、めっちゃ焦ってそう。
机の下に隠れてた。
senooken JP Social is a social network, courtesy of senooken. It runs on GNU social, version 2.0.2-beta0, available under the GNU Affero General Public License.
All senooken JP Social content and data are available under the Creative Commons Attribution 3.0 license.