Gauche
ということでさくっとやってみた。Slack というのは最近流行り(?)の HipChat like な Chat ツールで結構ほかのアプリケーション*1との連携がサクッと出来るのがいい感じぽい。 Slack では幾つかの API と WebHook を提供してくれているので、簡単に自動投稿…
Make 10 してみよう! — a wandering wolf 「してみよう!」と言われたらするしかないと思ったのでちょっとやってみた。 ;; make10 (use srfi-1) (use gauche.collection) (use util.combinations) (define (atom? x) (and (not (pair? x)) (not (null? x)))…
リストを交互に分配 これ読みながら逆ってどうやんのって思ったのでちょっと書いた。 (define (twist-list li1 li2 :optional (result '())) (if (and (null? li1) (null? li2)) result (let ((li1-len (length li1)) (li2-len (length li2))) (if (> li1-le…
例えば Ruby ではこういうことが出来る。 a, b = [1, 2] a+b #=> 3 便利ですね。そして Clojure ではこういうことが出来る。 (def m {:a 1, :b 2, :c 3}) (let [{a :a, c :c} m] (+ a c)) ;=> 4 (def v [100, 200, 300]) (let [{a 0, b 2} v] (+ a b)) ;=> 4…
CodeIQ に出した「hello, world × 3」の解説・解題 - Codeへの愛とCuriosity そういえば、これを読んでから書こうってずっと思っててやってなかったの思い出した。一応Gaucheで動きます。 (display (list->string (map integer->char `(,(*(*(+(*)(*)(*))(+(…
gifアニメが面白いのでちょっと調子に乗ってこういうの作ってみた。
変というか、思った通りの結果+αになってしまって困っている感じ。 Wikipediaのページをランダムに取得して、適当に呟くようにしようとしてMediaWikiのAPIを調べて以下のようなURLを作った。 http://ja.wikipedia.org/w/api.php?action=query&list=random&rn…
Progress - Project Euler 最新の進捗状況です。あと1問(No.38)が解けたら1から40まで解けたことになる。 9割くらいGaucheで解きました。1,2問くらいExcelで解きました(ぇ解答内容はおおよそ、GitHubにあげてます。 ayato0211/project-euler 3ヶ月くらい前…
えーと、軽いトラウマになっている環境の話。 というか、ちょっと書いてみたいプログラムがあって、調べて思い通りの結果が取得出来たのでメモメモ。Gaucheにおける「環境」とはモジュールのことになるらしい。モジュールはトップレベルの名前空間を規定する…
もとい、約数の和について。 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こんな感じ元ネタというか、こんなものを走り書きしたのはこの発言を受けて。 「晴れルヤ」っていう天気予報をメールでお知らせしてくれるサービスが…
【注意書き】よく考えたらHEADだからドキュメントとかもないのはある意味当然で、最新のリリースバージョンの0.9.3.3にはmath.primeは存在しないです。今日の段階(2013/07/35)のHEADの情報ということで。。Gaucheにそんなものがあったなんて知らなかった。。…
(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の大きさ…
というわけで、最近周りの人にLisp(といってもSchemeだしGaucheだけど)を布教する機会が多くなってきたのと、ちょっとセットアップの仕方教えてよ!って要望があったので、Gaucheで遊ぶまでの道のりを優しく丁寧に書いてみる。 (元も子もないことを言えば、…
タイトルだけみると、「またラムダ計算ですか?」って思われそうだけど今回はそうじゃない。 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) 昔、自分が書いたも…
この前、@alea12とぜろゆ嬢と3人で焼肉行ってた時に、Gaucheで10回Hello,worldを表示するのを見せたら、Rubyのコードでドヤ顔されて悔しかったのでRubyのtimesっぽい書き方ができないか試してみた話。見せたのは以下のコード。 (for-each (lambda (x) (print…
先日からちょっと、ちょこちょこ調べごとしてたのでメモメモ。 string-append 普通に文字列の結合をしてくれる。 (string-append "/home" "/ayato_p" "/text.txt") string-join URLとかCSVとか作るのに便利そう。 (string-join (list "home" "ayato_p" "text…
昨日仕事していて、パソコンで使うTODOアプリがあんまり便利なのないなーって思ったので、適当なの作った。 ちなみにXubuntuで今はお仕事の資料を書いている。LibreOfficeそこそこ使えるじゃん。 要件 コマンドでTODOを追加できる シンプルにテキストで管理…
SICPを読んでいても出てくるprime?という素数判定のための手続き。思い出したように、これって短く書けるんじゃない?って思ったのでメモ書き。 SICPに出てくるのは確かこんな感じ。 (define (prime? n) (define (smallest-divisor n) (find-divisor n 2)) (…
鳥のアイコンの人が、昨晩呟いてたのをGaucheならどう書くかなーって少しだけ考えたので、そのままさくっと載せてみる。 このコードどうしたらもっと見通し良くなるだろう URL2013-06-26 01:08:14 via webまず、囚人のジレンマとは 囚人のジレンマ(しゅうじ…
前回の記事書いたら、shiroさんからコメントでlrangeというのを教えてもらったので使ってみた。 Function: lrange start :optional end step startからstepづつ増加し、endを越える直前までの遅延数列を 返します。stepのデフォルトは1、endのデフォルトは無…
今日は昼間、会社の同僚と久しぶりに会って話していました。そして、話しているうちにSchemeかわいいという話を僕がしていて、実際にFizzBuzzのコードを書いてみせて、その後Project-Eulerの問題を解いてみせたんですが、「でも、括弧が多いし…」と言われた…
2013/06/23 追記 ということで、報告から12時間しないうちに直されてしまいました。 [Scheme][Gauche]let-argsを使ってみたら、よく分からない挙動をした。。。 URL2013-06-23 07:19:10 via Hatena @ayato_p いや、そりゃ Gauche のバグっぽいですね。2013-0…