(define -ayalog '())

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

2013-01-01から1年間の記事一覧

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

唐突に書きたくなったので、書いてみた。 (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…

SICPを読む_(13)2章_データによる抽象の構築(p49-59)

明日と言って、「明日」書いた覚えがない程度にダメ人間。 さて、今日は暇なのでにゅるっと頑張る。 2.1.2 抽象の壁(p49-50) 抽象の壁、ということでシステムの異なるレベルを隔離するものとして表現されている。 有理数の演算について考えた場合、add-rat,s…

モチベーション3.0を読んだ

AgileJapan2012(2013じゃなくて、去年!!)でJonathan Rasmusson*1の講演中に流されたDan Pinkの動画や書籍の紹介を見て興味を持ち、AgileJapan2012直後に購入した本だったんだけど、およそ1年経ってようやく読むに至った。*2というわけで読んだ感想とかでも。…

Gaucheのモジュールを書いてみた

SICPを解いているとどうしてもaverageとかsquareとかfibとか、突拍子もなく出てきて「あー、書かないとダメかー」っていう思いを何度もすると思う。いや、もしかしたら早い段階で気付いた人は、どっかのファイルにまとめて書きだして (add-load-path "hogeho…

Java初心者はテキストエディタを使ったほうが良いのか

仕事中、サクラエディタにJavaのソースコードをコピペして、シンタックスハイライトが効かなかったので、拡張子付きファイルにしかシンタックスハイライトが効かないのか気になって調べていたら以下の様な記事が目についた。 Javaクラスファイルは、Eclipse…

SICPを読む_(12)2章_データによる抽象の構築(p45-49)

間が空きました。なんかVPSといらぬ戰いをしていたので、ちょっと本流に戻ってきます。*1 (GaucheのKahuaとか触りたい…うずうず。いつかGaucheのソースコード読めるようになるんだ…。)というわけで2章、入っていきます。年内に終わらせたいと言いつつ本当に…

Gaucheを常に最新に保つ。

@ayato_p GaucheはHEADを使うものだあああああああああああああ2013-05-18 10:41:08 via twicca to @ayato_pということで、GaucheはGitHubのHEADを使うのがなうでヤングらしいので、さくっとやってみる。 と、思ってVPSでHEAD入れようとして、コケまくってた…

Gauche使ってTweetできた

Gauche使ってTweetできたらちょっとおもしろいかなって思って色々探してたら、モジュールがあったので紹介記事だけ書いてみる。 Gauche-net-twitter shiroさんが作ったTwitter用のモジュールがあるんですが、3年ほど前から更新されていないようです。 shirok…

Gaucheのユーザーリファレンスを呼び出す

2日連続更新なんて珍しい。ということで、あやぴーです。最近Gaucheで色々書くことがあったりなかったりしているのですが、 もう少しユーザーリファレンスをスマートにかつ!クイックに!参照したいと思うようになってきた。ちょっとGaucheユーザーらしくな…

GaucheでWEB APIを叩きたかった

こんばんわ!こんばんわ! だいたい、あやぴーです。最近色々と作ってみたいもの、試してみたいことが多くて時間が足りていない感凄い。 で、ちょっと試したいことあったので、まずはWEB APIをGaucheで叩いてみたいと思った!今回とりあえずWEB APIを叩くの…

SICPを読む_(11)1章_手続きによる抽象の構築(p37-44)

ということで1ヶ月と少しぶりです。SICPの続きです。前回までで何処までやったかすっかり忘れていますが、37ページ付近まで書いたみたいなので頑張って1章終了まで持っていきます。 1.3.3一般的方法としての手続き(p37~40) この節で、関数の零点と不動点を探…

SICPを読む_(10)1章_手続きによる抽象の構築(p31-37)

間がめちゃくちゃ開いた気がします…。気がついたら脱線しまくりの、私生活ドタバタで全然進んでませんでした。 ということで気を取り直して、またサクサク進みますよ!>< 1.3高階手続きによる抽象(p31) プログラムで3乗することはできるが、言語には3乗の…

ラムダ計算を理解したようです

ラムダ計算に魅了されたあやぴーが、ラムダ計算でプログラミングしてみる。 今回の目標は「1+2=3」をラムダ計算で計算することです。 準備:ラムダ計算とは? 「函数の函数による函数のための計算」とか言ってると、「ぽい」のかもしれないです。 1930年頃に…

積読タワーを晒そう。-技術書を選ぶ基準とか-

誰得な感じですけど、「僕の積読タワー」と「技術書をどうやって選ぶのか」が気になるという人がちょいちょいいるみたいなので、書いてみることにする。 あやぴーの積読タワーが成長する理由。 つい先日もこんな事がありました。 わーい!Land of Lispきたー…

ドラクエ7のバロックタワーのパズル問題にSchemeで挑んだ結果…

はい。昨晩Twitterでこんなのが流れてきました。 (※ネタバレあり) / ドラクエVIIのバロックタワーのパズルを解く URL2013-02-21 00:26:53 via Tweet Button僕も最近毎晩のようにドラクエ7やってます。 今、ちょうど最強の呪文を覚えたりしたとこです。ちな…

SICPを読む_(9)1章_手続きによる抽象の構築(p26-31)

おはようございます!!ドラクエ7やってますか?? やっとルーメンクリアしたあたりで、主人公が勇者極めちゃってたり、マリベルが天地雷鳴師極めちゃったんで、ローズバトラー極めに行こうかと計画してたりします。*12月に入ってSICP読むも、なかなかこっちに書…

named-letの練習

なんかnamed-letが分かりにくかったので書いて理解しようとした。 文字列の空白を除いて文字数をカウントする手続き (define (str-count str) (let loop ((ls (string->list str)) (count 0)) (let ((inc (lambda (x) (+ x 1)))) (cond ((null? ls) count) (…

KPF#x08でLTしてきたよ #kpf

こんにちは!こんにちは!ということでkpfの第8回目に参加して、LTしてきたのでブログに書いてみる。告知ページはこちらでした。 KPF#x08 当日のまとめはこっち。 KPF #X08 KPFとは ということで、まず「KPFとは?」というところをさくっと説明しておきます…

Autoboxingさせて!!

ということで先日、開発用EclipseたんがAutoboxingをErrorにしてくれやがるという問題に直面し、非常に悲しい思いをしたのでブログに書いておく。Togetterにまとめたのでそちらも併せて読んでもらえれば事の成り行きが分かるかと。 Autoboxingさせて!! 事の…