reduce(r|l)

というわけで問題。reducelとreducerを実装せよ。制限時間はあわせて10分。ただし、reducelとreducerは、Haskellにおいて次の挙動を示すものとする。

*Main> reducel (\x y -> "("++x++"#"++y++")") $ map show [1..4]
"(((1#2)#3)#4)"
*Main> reducer (\x y -> "("++x++"#"++y++")") $ map show [1..4]
"(1#(2#(3#4)))"

404 Blog Not Found:Code Snippets - reduce(l|r)を実装汁!

fold使ったらトイレ行ったりしつつ10分くらいでできたけど、foldってsrfi-1なのね。srfi-1にはreduceがあるから、fold使うのはおかしい

R5RSの関数だけで書きなおした。

(define (reducer kons ls)
  (if (< (length ls) 2)
      (car ls)
      (kons (car ls) (reducer kons (cdr ls)))))

(define (reducel kons ls)
  (let ((ls (reverse ls)))
    (letrec ((iter
	      (lambda (kons ls)
		(if (< (length ls) 2)
		    (car ls)
		    (kons (iter kons (cdr ls)) (car ls))))))
      (iter kons ls))))

五月祭間違いさがし

間違いを探せ!

ボクの担当は10時から14時までの4時間だったのだが,結局のところ,この4時間の間に展示内容を見に来た人は4〜5人しかいなかった(その他の鉄道議論&算数議論の参加者は十数名).土曜担当の人からは,人がたくさん来ると言われていたし,隣のグループのところにはかなり人がいたのだが・・・.

http://haraken.aprk.net/cgi/blog/blog.cgi??year=2007&month=5&date=28&show=onlyone&onlyonefile=20070528045120_15673

答え:客は来るものではなく呼びこむものである

五月祭のうちの学科の展示をやりながら、隣とかの展示の様子も眺めていて思ったのは、趣旨をわかってない or やる気のない人多すぎ*1。パソコンとか基盤とか並べて男数名が待機してるところに好きこのんで話しかける奴なんてなかなかいねーよ。営業スマイルなんかできなくてもいいから、前を通りかかった人に声をかけて企画の紹介くらいしろよ。レポート書いてたり内輪で盛り上ってたら客のほうも聞きたくても聞けねーよ。

いわゆるコミュニケーションですよ。俺は自分にコミュニケーション能力がないのがわかってるから、いい練習の場だと思って引きつったキモ営業スマイルでドモったりテンパって変なこと言ったりしながら企画の説明とかしてたわけですよ。おじいちゃんマイクは耳にあてるもんじゃないよとか思いながら結構がんばって説明してたわけですよ。日曜は飲酒+寝不足でへたって休み休みやってたけど。

別に義務でもなんでもないからやらなくてもいいんだけどさ。別にベイズの定理つかって音声認識する原理なんて説明する必要もないし、客にM教授の顔したコンピュータと話してもらう必要もないけどさ。研究室のツン度合いが異常だからやる気が削がれたのもわかるけどさ。大学に引きこもって一生アルゴリズムを考えるのも楽しいだろうけどさ。それでいい人はそれでいいんだろうけどさ。俺はよくない。

つまりはそういうことだ。行間読め。

*1:もちろんがんばってる人もいた

褒められることについて

自分が満足できていないことや、表面上だけのことで褒められるのは嫌い。

自分がある程度満足していることや、頑張った成果で褒めてほしいと思っていることを褒められるのは好き。

であるのだろうということに今日気がついた。要は、他人の評価が(自分で思っている)等身大であるとほっとして、それより悪いとむっとして、過大評価されるとぞっとする。

たまに人の成果をさも自分の成果のように話す人がいるけど、よくそんな事ができるな、と思う。自分だったら、過大評価されるのが怖くて必死になって他人の成果は他人の成果であると訴えるだろう。必死になって、引用は引用であると主張するだろう。ブログのネタでさえ、引用元を書かないことに恐怖を感じるくらいだから。