(define -ayalog '())

括弧に魅せられて道を外した名前のないプログラマ

Scheme

コラッツの問題

11月16日いろふうらがみ迎撃会 - connpass なんとなく久しぶりに id:irof せんせーに会いたくなったので、重たい腰をあげて行ってきた。なんか Twitter 見てない間に irof せんせーが本を書いてたらしい。 というか、参加登録した後に、イベント主旨が若干変…

Hello, world?

CodeIQ に出した「hello, world × 3」の解説・解題 - Codeへの愛とCuriosity そういえば、これを読んでから書こうってずっと思っててやってなかったの思い出した。一応Gaucheで動きます。 (display (list->string (map integer->char `(,(*(*(+(*)(*)(*))(+(…

僕がGauche書いているときってこんな感じ

gifアニメが面白いのでちょっと調子に乗ってこういうの作ってみた。

豚骨ラーメンが食べたい

どうしよもないくらいどうでもいいことをふと思いつく瞬間がある。 豚豚豚豚骨骨ラララーーメメメメメメメメンンンン2013-08-21 23:42:38 via web@alea12のせいでどうでもいいことを思いついたので、パッと書く。 (define (tonko2ramen str n) (list->string…

Project Euler頑張ってる。

Progress - Project Euler 最新の進捗状況です。あと1問(No.38)が解けたら1から40まで解けたことになる。 9割くらいGaucheで解きました。1,2問くらいExcelで解きました(ぇ解答内容はおおよそ、GitHubにあげてます。 ayato0211/project-euler 3ヶ月くらい前…

n桁以上

書いてないと忘れるので、少し書いておく。 少し考えれば分かるというか、数学漬けだった頃は普通にやってたことが最近どうも忘れていて困る。 (let ((x 1000) (n 4)) (if (>= x (expt 10 (- n 1))) (print (format "~d桁以上" n)) (print (format "~d桁未満…

約数のわっ!

もとい、約数の和について。 Project Eulerで約数の和をそこそこ使うから書いていた。 (let1 x 12 (apply + (filter (^n (zero? (mod x n))) (iota x 1)))) 例えば、こんな感じのロジックを実装していた。 なんだけど、例えばこれを多用するような処理を書い…

眠いです。

昨日4時くらいまで(?)起きてたらしい(?)ので凄く眠いです。 なので、眠いって呟くコマンド作った(!?)。 #!/usr/local/bin/gosh (use net.twitter) (define *cred* (make <twitter-cred> :consumer-key "XXXXXXXXXXXXXXXX" :consumer-secret "XXXXXXXXXXXXXXXX" :access-tok</twitter-cred>…

あやぴーが今日の天気をお伝えします。

2013-08-06東京都 東京 の天気曇時々雨最低気温: --, 最高気温: 322013-08-06 11:47:56 via gosh_de_tweetこんな感じ元ネタというか、こんなものを走り書きしたのはこの発言を受けて。 「晴れルヤ」っていう天気予報をメールでお知らせしてくれるサービスが…

10LISP '00を開催してきた。

初めて自分で勉強会というのを企画して、やりました。10LISP '00 10LISP '00 まとめあまり納得の行く結果にはならなかったので、悔しい思いをしたっていうのが今回。次回勉強会は方向性をもう少し、ゆっくり考えたいので後日。後で調べる。 ドット対、リスト…

小文字の文字列を大文字の文字列に変換する

素朴に書くとこんな感じ? (let1 str "hoge" (list->string (map char-upcase (string->list str)))) シーケンス使えばこう書けるよなーって思ったけど、思ったより短くならなかった。 (use gauche.sequence) (let1 str "hoge" (list->string (map char-upca…

Project Euler 22を解く感じ

(add-load-path "." :relative) (use text.csv) (define *names-text* "./problem-22/names.txt") ;;適当なパスに放り込んだnames.txt (let1 num 0 (fold (lambda (x y) (+ (* (inc! num) (name->score x)) y)) 0 (sort (with-input-from-file *names-text* …

ピアスの公式を書いてみた。

クラムというゲームがあるそうで、それの発展として「砲門の問題(The Gunport Problem)」というのがあるらしい。 m×nの板上にドミノを置いたとき、1×1の大きさの「穴」が最大いくつ開けられるか。 ただしmもnも1より大きいものとする。 ※ドミノは1×2の大きさ…

マクロすごい。すごいマクロ。

マクロすげええええええええええええええ2013-07-17 09:21:57 via Twitter for iPhoneということで、マクロに感動した。マクロ凄い。このブログを書くようになったきっかけである9LISPからかれこれ1年半が経ちました。 9LISP - 037 当時、Lispを勧められたと…

10進数な逆数を求める

暇だったので、朝からカキカキ。逆数を10進数で表現する。 (define (reciprocal m) (let loop ((a '()) (b '()) (n 1)) (if (find (^x (= (mod n m) x)) b) (reverse (cons (div n m) a)) (loop (cons (div n m) a) (cons (mod n m) b) (* (mod n m) 10)))))…

Scheme勉強会をやります!

こんにちは。あやぴーです。 唐突ですが、Scheme勉強会を都内でやりたいと考えています。 というか、やります!!ほぼ確実に。*1 なので、ちょっと今考えていることを書きだしてちょっと反応を貰えたら嬉しいなと思っています。 経緯 【質問】都内で土日何処…

僕と契約してLisperになってよ!-Gaucheの開発環境を整えよう-

というわけで、最近周りの人にLisp(といってもSchemeだしGaucheだけど)を布教する機会が多くなってきたのと、ちょっとセットアップの仕方教えてよ!って要望があったので、Gaucheで遊ぶまでの道のりを優しく丁寧に書いてみる。 (元も子もないことを言えば、…

数字を使わないで1+2をやってみる

タイトルだけみると、「またラムダ計算ですか?」って思われそうだけど今回はそうじゃない。 R5RSの仕様を使って、1とか2という"数字"を式の中に書くことなく「1+2」をやるんです。まぁ解説しながらやると面白くないので、いきなり結果をドンと書いてみる。 …

エラトステネスの篩を書いてみた

唐突に書きたくなったので、書いてみた。 (define (sieve n) (define (iter ls m) (if (not m) ls (iter (filter (^x (or (= m x) (not (zero? (mod x m))))) ls) (find (cut > <> m) ls)))) (iter (lrange 2 n) 2)) ;;test (sieve 100) 昔、自分が書いたも…

ふつうにクイックソートをSchemeで書いた

なんとなーく書いてみた。改めてこういうの書いてみて、アルゴリズム以外をあんまり意識しなくていいのは楽でいいなって思った。 (use util.match) (define (take p lst c) (filter (lambda (x) (c p x)) lst)) (define (take-less p lst) (take p lst >)) (…

Rubyのtimesが羨ましかったので

この前、@alea12とぜろゆ嬢と3人で焼肉行ってた時に、Gaucheで10回Hello,worldを表示するのを見せたら、Rubyのコードでドヤ顔されて悔しかったのでRubyのtimesっぽい書き方ができないか試してみた話。見せたのは以下のコード。 (for-each (lambda (x) (print…

Gaucheの文字列結合

先日からちょっと、ちょこちょこ調べごとしてたのでメモメモ。 string-append 普通に文字列の結合をしてくれる。 (string-append "/home" "/ayato_p" "/text.txt") string-join URLとかCSVとか作るのに便利そう。 (string-join (list "home" "ayato_p" "text…

ハッカーと画家、読んだ

ハッカーと画家については、以下の呟きがその素晴らしさを示していると思う。 前々から気になってたんだけど「ハッカーと画家を読んでLispをやるべきだと思った人」って本当にいるの? 私はそんな人は実は存在しないんじゃないかと疑ってるんだけど。2011-12…

TODO管理用のコマンドをざっくり書いてみた

昨日仕事していて、パソコンで使うTODOアプリがあんまり便利なのないなーって思ったので、適当なの作った。 ちなみにXubuntuで今はお仕事の資料を書いている。LibreOfficeそこそこ使えるじゃん。 要件 コマンドでTODOを追加できる シンプルにテキストで管理…

Lispっぽく素数判定する?

SICPを読んでいても出てくるprime?という素数判定のための手続き。思い出したように、これって短く書けるんじゃない?って思ったのでメモ書き。 SICPに出てくるのは確かこんな感じ。 (define (prime? n) (define (smallest-divisor n) (find-divisor n 2)) (…

囚人のジレンマ

鳥のアイコンの人が、昨晩呟いてたのをGaucheならどう書くかなーって少しだけ考えたので、そのままさくっと載せてみる。 このコードどうしたらもっと見通し良くなるだろう URL2013-06-26 01:08:14 via webまず、囚人のジレンマとは 囚人のジレンマ(しゅうじ…

lrangeというのを使ってみた。

前回の記事書いたら、shiroさんからコメントでlrangeというのを教えてもらったので使ってみた。 Function: lrange start :optional end step startからstepづつ増加し、endを越える直前までの遅延数列を 返します。stepのデフォルトは1、endのデフォルトは無…

Re:超簡単にTwitterに連投できる「連投」をつくりました

@alea12が面白いことしてたので、パクったアイデアを頂いた。 元記事こっち。 超簡単に Twitter に連投できる「連投」をつくりました 昨晩、僕の本垢で「Hello, world!!」を100回程度連投していたのは、これのコードを書こうとしていたため。。…ソースコード…

Scheme可愛いよって話をしていたら、「括弧が多い」って言われたので

今日は昼間、会社の同僚と久しぶりに会って話していました。そして、話しているうちにSchemeかわいいという話を僕がしていて、実際にFizzBuzzのコードを書いてみせて、その後Project-Eulerの問題を解いてみせたんですが、「でも、括弧が多いし…」と言われた…

【バグを踏んでたらしい】let-argsを使ってみたら、よく分からない挙動をした。。。

2013/06/23 追記 ということで、報告から12時間しないうちに直されてしまいました。 [Scheme][Gauche]let-argsを使ってみたら、よく分からない挙動をした。。。 URL2013-06-23 07:19:10 via Hatena @ayato_p いや、そりゃ Gauche のバグっぽいですね。2013-0…