時の羅針盤@blog
オランダの生活、自身が行っているSagittarius Schemeの開発日誌、
その他雑多なことをつづってます。
Let's start Scheme
(Move to ...)
(はじめよう Scheme 0)
(はじめよう Scheme 1)
(はじめよう Scheme 2)
(はじめよう Scheme 3)
(はじめよう Scheme 4)
(はじめよう Scheme 5)
(はじめよう Scheme 6)
(はじめよう Scheme 7)
(はじめよう Scheme 8)
▼
2018-03-30
Ephemeron を使ってみる
›
Ephemeron は SRFI-124で定義されているがどういったものなのか、どういう挙動が期待されるのかというのはなかなかに想像しづらい。ということで、ちょっと触りつつ解説してみる。 まず、 ephemeron とは何か?ものすごく簡単に言えば循環構造を許す弱対といえる。...
2018-03-23
Generatorの勧め
›
Schemeでリスト処理を書いていると中間リスト(処理の最中に作成されて捨てられるリスト)の存在が気にならないだろうか?ClojureにはTransducersがあるのにSchemeにはないのだろうか?そこでGeneratorである。 Generatorは元もとGaucheに...
2018-03-09
右回り
›
スタックオーバーフローにこんなのがあった。 Rotating a list to the right in scheme 真面目に実装するのはだるいなぁと思ったのでこんな風に書いてみた。 (import (rnrs) (srfi :1)) (define...
2018-03-02
ファイルタイムスタンプとChicken Scheme
›
Sagittariusではファイルのタイムスタンプを変更する方法を用意していなかった。それが問題になったことがなかったというのが一番の理由である。が、先日これが問題になったので追加したという話。 問題になったもの Scheme EnvでChickenのインストーラを作成して...
2018-02-26
多言語を扱う際のメンタルモデル
›
NetflixでDeath Noteを見ていた際に「L is dead」というメッセージが見えた。Lが実際に死んでからしばらく時間が立っているので、実は他にも「L is alive」等のメッセージが存在し現在のLの状況を伝えたという感じだったのだろうか。 「Death」「di...
2018-02-24
MSYS2サポート 2
›
前回 の続きと僕なりの回答。 前回MSYS2上でのシンボリックリンクの話とSagittarius上でどうするかというのを書いた。書いた後に助言やMSYSがどのようにシンボリックリンクを扱っているかというののヒント(調べた結果Qiitaの記事が古いのか現状の挙動と違った)をもら...
6 comments:
2018-02-16
MSYS2サポート
›
Sagittarius 0.9.0からはMSYS2が実験的にサポートされる。実験的と書いているのは単にまだ安定しないのと、他のPOSIX環境と多少挙動が異なる点があるというところからである。挙動に関しては積極的に変えていく可能性があるので、WindowsかつMSYS2を使っている...
2018-02-09
TLS実装2(完)
›
Sagittarius上にビルトインなTLSを実装し終えた。POSIXな環境(Linux、OSX)ではOpenSSLをWindowsな環境ではSchennal、CygwinとMSYS2上ではあればOpenSSL、なければSchannelを使うという感じになっている。 今までP...
2018-02-01
TLS実装
›
Scheme環境ツール でTLS実装をOpenSSLかSSPIに切り替えると書いて、実際にそうしているのだが、SSPI(正確にはSchannel)の実装が辛い。何が辛いか? ドキュメントが飛び飛び MSDNにAPIの説明はあるんだけど、フローの説明がない 例えばX.50...
2018-01-26
Mingwサポート
›
Ubuntu上でもWindows用のコードをコンパイルしたいと思いMingwのサポートをしてみた。実際にMingwでコンパイルされたバイナリを動かしていないのでコンパイルできる以上の意味を今のところ持っていない(そのうちCIでは回すようにしたいが、優先度的には多少低め)。 と...
2018-01-25
Scheme環境ツール
›
各種Scheme処理系をある程度便利に使いたいと思い、 こんなん を書いている。なんでそんなことを思ったかというと: タイムゾーンなSRFIを書こうかな ポータブルな実装がいるよなぁ 処理系を簡単にスイッチできないかなぁ ← これ 完全にYak shavingである。...
2018-01-14
リストの作成
›
こんなツイートをしたが、どう書くかというのは示してなかったので(iPhone上からだったので)、せっかくだしブログのネタにしようという話。 (append L (list ...)) となっているところは cons + reverse に書き換えられる気がする。O(n^2)...
2018-01-08
日付と時間 その2
›
前回 の続き Shiroさんの案では calendar 自体が (y, m, d, H, M, S) の組を持つというもので、SRFI-19 の date は (y, m, d, H, M, S) + timezone というもの。っで、 calendar の種類は複数あって...
2018-01-04
日付と時間
›
日付や時間はプログラムを書く上で鬼門になりがちなものである。例えば、2018年1月4日11時10分と言った時に、この時間は常に同じ時間を指すだろうか?答えはNoである。例えばオランダと日本では別々の時間になる。同一時刻を指すようにするにはタイムゾーンの指定が必要になる。 Sc...
2018-01-02
謹賀新年
›
年末年始を病院で過ごしていたのでいわゆる「今年を振り返って」みたいなのが書けなかった。(僕自身が病気ではないです、後は察してください) 昨年はいろいろあって、一年が長かったのか短かったのかよく分からない状態である。少なくとも去年の1月に何をしていたのかは全く思い出せない。引っ...
2017-12-17
95%の人は満足するけど残りの5%は不満を持ち得るシステムの5%に入ってしまった件
›
表題が示す通りなんだけど、そんな境遇に陥った。 今の会社に入って1年半たつのだが、買収があったりして給与システムの大幅な見直しみたいなのがあった。今までは、なんとなく評価された人が昇給されたりボーナスがあったりみたいな超おおざっぱな感じだったんだけど(特に決められたルールがな...
2017-11-24
プログラミング言語Schemeの学び方
›
これに触発されてみた。 調簡易なHTTPサーバーをR7RS+SRFIで作ってSchemeを学ぼうという話。スライド145にある項目をとりあえず列挙 Socketの扱い 正規表現 リソースの開放 並行処理 文字列の扱い 【Socketの扱い】 Scheme標...
2017-11-08
スレッドの軽量化
›
Sagittariusはスレッドの作成が重い。理由は至って簡単でスレッド毎にVMを複製するからである。あまり気にするほどスレッドを使っていなかったのだが、最近(というか昨日)Paellaに非同期的なのを入れた際にこれはまずいと思いだした。何がまずいかというと、Paellaに入れた...
2017-10-29
アクター
›
メッセージパッシングとも言う。 Sagittariusには(util concurrent)があるのだが、今までこのスタイルのライブラリを追加してなかった。理由としては 実装自体はトリビアルであること ライブラリにするにはアイデアの練りが足りないこと の二つが主であ...
2017-10-27
バグ取り
›
Sagittariusには(net server)というライブラリがあって、それを使うと割と簡単にノンブロッキングなサーバーが書けたりする。このライブラリは(paella)の基盤になっていたりするので、個人的に書くWebアプリは意識の外側にくらいの位置ではあるが使われていることに...
‹
›
Home
View web version