タグ

PythonとLispに関するagwのブックマーク (13)

  • Pythonのlambda - 西尾泰和のはてなダイアリー

    プログラミングシンポジウムで言語パターン - 使いやすい言語・ライブラリをデザインする方法 - qwik.jp/lang-patternの発表を聞いていて、使ってほしくない機能は使いにくくするという話のところで「Pythonlambdaが使いやすく改善されないのはGuidoが使ってほしくないと思っているから」と発言したらソースを求められたので調べてみた The fate of reduce() in Python 3000 Why drop lambda? Most Python users are unfamiliar with Lisp or Scheme, so the name is confusing; also, there is a widespread misunderstanding that lambda can do things that a nested fun

    Pythonのlambda - 西尾泰和のはてなダイアリー
  • はてなブログ | 無料ブログを作成しよう

    【ギリシャ&トルコ】旅行記 3月の8泊9日 一人旅プラン(2025.3) 3月に、ギリシャとトルコを9日間一人旅してきました。色々プラン変更があり、ちょっと大変でしたが、過ぎてしまえばそれも楽しい思い出に。個別の内容はまた改めて書くとして、まずは記憶が消えないうちにざっと全日程の振り返りをしたいと思います。 ギリシャ&トルコ…

    はてなブログ | 無料ブログを作成しよう
  • はてなブログ | 無料ブログを作成しよう

    どこかにビューンで12月の山形へ。将棋の駒だらけの天童市(2024/12/21) 12月の週末、JRE BANKの「どこかにビューン」割引優待をつかう。 出た行先は「山形」。 ドッキングするつばさとやまびこ。つばさ側に乗るのは初めて。 車窓から、筑波山 福島の桃ガスタンク 山形に入ったらとたんに雪景色で、テンションがあがる。(今年の山形は豪雪で…

    はてなブログ | 無料ブログを作成しよう
  • Scheme言語の意義 (2) - プログラミング日記

    昨日の日記のコメントで、大物Schemerの方だと思われる方に貴重なご意見をいただいた。さらに思うことを書いてみる。 それらの組合せは柔軟性に富んでいて表現の幅はとても広いのです。新たな概念が出てこないのではなく、新たな概念はあなたが作るべきものであるというのがschemeの思想なのです。 Schemeは、低レベルな言語というイメージがある。何でも自分で組み合わせて作成しないといけないイメージがある。しかし実際は、高レベルなものはライブラリレベルで、ほとんどのものが既に用意されていると思う。しかも、恐らくマクロを使えば構文自体も変更できるので、ある意味ライブラリ以上の事が可能となっているのだと思う。 しかも、ライブラリは低レベルなものを組み合わせてできていると思うので、深い事も可能になっていると思う。例えば、Pythonでは文字列型(str)は、ImmutableなのでMutableなもの

    Scheme言語の意義 (2) - プログラミング日記
  • Scheme言語の意義 - プログラミング日記

    最近『Gaucheプログラミング』を頑張って読んでいるが、Scheme言語を勉強するメリットがあまり分からない。便利な機能の多くはPythonにも取り入れられているし、新たな概念もあまり出てこない。パターンマッチなどの関数型言語よりの概念は、HaskellやOCamlみたいな言語で勉強した方が良さそうであるし。 一番嫌なのが、カッコが多すぎて構文が非常に見づらい。式がそのまま構文木であるとか、入出力不変性は良さそうな概念であるが、具体的なメリットが見えてこない。 また、色々な機能が何でも手続き(関数)になっているので、手続きを覚えるのは大変。Rubyの1..10や、arr[idx]などももちろん手続きである。覚えることが多いと感じるのは、やる気ない私にとって非常に辛い。それだけでやる気がなくなる。 マクロや継続の章まで、まだ読んでいないので、そこら辺まで読んだら、Gaucheの勉強は、とり

    Scheme言語の意義 - プログラミング日記
  • On the Relationship Between Python and Lisp

    PythonとLispの関係について Paul Prescod 日語訳:Shiro Kawai (shiro @ acm.org) これは、 Paul Prescod:On the Relationship Between Python and Lisp を、原著者の許可を得て翻訳・公開するものです。 2002/06/02 翻訳公開 Lispは時代のはるか先を行っていた。 Lispは最初の高級言語だったから、それ以降に現れた良いものは全てLispの再発明だ、 と信じたくなる人々がいる。 JavaはLispだ。XMLもLispだ(違うのだが)。 そして今度は、PythonはLispだそうだ。 有名なLispエキスパートである Paul Grahamが提示した話はこうだ。 彼が議論に選んだ3つの言語、JavaPerlPythonのうち、 PythonPerlより(ポピュラーではないにせ

    On the Relationship Between Python and Lisp
  • Ruby vs. Python は Lisp vs. Scheme に似ている - kwatchの日記

    Python の好きなとこ・嫌いなとこを書いていて、よくわかった。 Ruby vs. Python は Lisp vs. Scheme に似ていると思うんだ。 Ruby, Lisp -- 機能がリッチで仕様は複雑、変数と関数の名前空間が違う Python, Scheme -- 機能を絞っていて仕様は簡素、変数と関数で名前空間が同じ Scheme 好きな人は Python を、Lisp 好きな人は Ruby をやればいいと思うよ。

    Ruby vs. Python は Lisp vs. Scheme に似ている - kwatchの日記
  • tail call - odz buffer

    ref:記録: [メモ]再帰を使うとn-gramはすっきり書ける うーん、Scheme のコードは末尾再帰になっていないので、普通にスタックをい尽くす危険性があるように思うのだが、どうなんだろう。Scheme に詳しくないのではずしているかもしれないが。あと、length 使うと遅そうだ。 適当にベンチマーク。 (use srfi-1) (define (has l n) (cond ((zero? n) #t) ((pair? l) (has (cdr l) (- n 1))) (#t #f))) (define (bigram1 data) (if (< (length data) 2) '() (cons (list (car data) (cadr data)) (bigram1 (cdr data))))) (define (bigram2 data) (if (not (ha

    tail call - odz buffer
  • Pythonの技法:関数型言語スタイル「関数の部分適用」 - builder by ZDNet Japan

    Pythonはその起源からすると関数型言語ではない。しかし、functoolsライブラリを利用することで、関数型言語のスタイルでプログラムを記述できるようになる。関数型のコードを記述するために重要なツールの一つとして、functoolsモジュールでも利用可能な「関数の部分適用」がある。 部分適用とは、ある関数への複数の入力のうち一つを定数値にバインドし、残りの入力のみを受け取る新しい関数を作成することである。バインドされた入力は、新しく作成された関数が呼び出される際にはいつも同じ値になる。以下に、functoolsモジュールを用いた部分関数の簡単な使用例を紹介しよう。なお、この例ではoperatorモジュールのadd関数も使用している。このadd関数は「+」演算子と同様の働きをするものの、関数であるためオブジェクトとしても扱うことが可能だ。 >>> from functools impor

  • Python の関数型っぽいプログラミング - tomapd == 22%

    Python はかなり関数型っぽいということがやっと分かったので、Scheme と比べつつ様子を探ってみたい。まずは Lisp ではよく高階関数の例として取り上げられるものをいくつか取り上げてみた。 関数の合成。 ;; Scheme (define (compose f g) (lambda (x) (f (g x)))) # Python def compose(f, g): def __fg(x): return f(g(x)) return __fg つづいて二つのリスト(あるいは配列)の各要素ごとの和を返す関数。 ;; Scheme (define (sum-element lst1 lst2) (map + lst1 lst2)) # Python def sum_element(lst1, lst2): return map(operator.add, lst1, lst2)実

    Python の関数型っぽいプログラミング - tomapd == 22%
  • https://www.unixuser.org/~euske/doc/python/python-lisp-j.html

  • Life with Cygwin

    沖ソフトウェア株式会社は、沖通信システム株式会社および株式会社沖インフォテックと平成22年10月1日をもって合併いたしました。新会社名は、株式会社OKIソフトウェアとなります。3社が行っております事業は新会社にて従来通り継続いたします。

  • Teach Yourself Programming in Ten Years 日本語訳

    以下の文章は、Peter Norvig による Teach Yourself Programming in Ten Years の日語訳である。 翻訳文書については、以下の方々にご教示を頂きました。ありがとうございました。 Shiro Kawai さん:誤訳の訂正 三好博之さん:誤訳の訂正 竹中明夫さん:2001年7月改版分の訳、誤訳の訂正(共訳者にクレジット) Toshihiko Ono さん:誤訳の訂正 アクビさん:訳注3に関する情報 どうしてみんなそんなに急ぐの? どの屋に足を運んでも、『7日で学ぶ Java』といったハウツーを見かけるし、そのそばには Visual Basic や Windows やインターネットなどについて、同じように数日や数時間で学べると売りこむが無限のバリエーションで並んでいる。Amazon.com で以下の条件で検索してみたところ、 pubdate

    Teach Yourself Programming in Ten Years 日本語訳
  • 1