タグ

PythonとHaskellに関するraimon49のブックマーク (7)

  • Go言語がダメな理由 | POSTD

    私はGo言語が気に入っていますし、多くの場面で使用します。現にこのブログもGoで書いています。Goは便利な言語ですが、優れた言語とは言えません。つまり、悪くはないけれど、十分ではないということです。 満足できない言語を使用する際は注意が必要です。注意を怠ると、その言語を次の20年間使い続ける羽目になるかもしれないからです。 私のGoに対する主な不満を文にまとめました。既に何度も指摘されていることも含まれていますが、中にはこれまでほとんど話題になっていない指摘もあります。 これから列挙する全ての課題には既に解決策があることを示すため、私が優良な言語と考えるRustやHaskellと比較して説明します。 汎用プログラミング 課題 誰でもさまざまな事柄に幅広く対応できるコードを記述したいと考えます。例えば数のリストの合計を求めるために定義した関数が、小数、整数、またその他の合計を求められるもの

    Go言語がダメな理由 | POSTD
    raimon49
    raimon49 2019/02/04
    比較に登場するRustのバージョンが随分古いなと思ったら記事そのものが2014年に書かれたものなのか。
  • 評価戦略について - 西尾泰和のはてなダイアリー

    「コーディングを支える技術」の書評で、評価戦略についていくつかご意見をいただきました。 id:dankogai 評価戦略がまるまる抜けてしまったのは残念である。かつては事実上先行評価しかなく、評価戦略において選択肢があること自体ほとんど知られていなかったが、今では遅延評価を主体とする言語も普及したとまでは言えないものの、充分実用的に使われるようになってきている。著者はもちろんHaskellを知っているし、書にも登場するにも関わらず、これが抜けているというのはなんとももったいない。もし改訂版を著す機会があったら、絶対に一章割いていただきたい。 http://blog.livedoor.jp/dankogai/archives/51864510.html 確かに、世の中の大部分の言語が先行評価なせいで「そういうもんだ」と思い込んでしまっている人も多そうですね。そういう人にHaskellでun

    評価戦略について - 西尾泰和のはてなダイアリー
  • Python のカッコ無いところを紹介してみる - methaneのブログ

    Haskellのカッコいいところを紹介してみる をみて、 Python と比較してみようと思います。 以下、 heading は上記記事の heading の引用で、 Python のことではなく Haskell の特徴です。 数学英語の知識で「読める」表現が多い 一応、 instanceof など多くの2引数関数が、 infix で書いたら左に来るものが第一引数というルールを守っているので、頭の中ではそれで引数の順序を補完して、 if instanceof(x, int) は "if x is instance of int" と読んでいます。引数の順序がどっちだっけ?と迷うことはほとんど無いです。 しかし残念ながら Python は中置記法はありません。構文をシンプルに保つ方を取っているんでしょうね。 import Data.List import Data.Function xs

    Python のカッコ無いところを紹介してみる - methaneのブログ
  • なぜ coffee-script が盛り上がるか - mizchi log

    情報感度が高く体面を気にするIT企業の皆さんは、今日はさっさと帰れと言われてるので、やることなくなったエンジニア達がcho45さんの釣り針に釣られてハッスルしているのだと思われます。弊社も朝からudzuraあたりがハッスルしてるのをみてました。 暇なので大喜利に参加。というか、他の方が言及していない、なぜcoffee-scriptの良い面、について書きたいと思っています。 -> のエイリアスが、関数オブジェクトの意識を変えた > の関数定義はJS来の関数型言語への意識を呼び覚ましました。そもそも今までが関数型もどきの言語ポテンシャルだったくせに関数オブジェクトが文字数的な問題で使いにくかったのです。 テンプレートエンジンのCoffeekupでは、高階関数の入れ子によってDOMを表現するなんてこともやってます。 doctype 5 html -> head -> meta charset:

    なぜ coffee-script が盛り上がるか - mizchi log
  • 言語女子会2: varは必要?/privateがない? - 西尾泰和のはてなダイアリー

    言語女子会: undefとnullは両方必要?の続編です。 varは必要なの? とあるプログラミング言語が集う女子会にて: Python: JavaScriptちゃんってさ、なんでvarだらけなの? JavaScript: えっ、変? Python: varなんかいらなくない?私ぜんぜん持ってないよ? JavaScript: えー、じゃあ変数をどうやって宣言するの? Python: 宣言っていうか…「x = 1」みたいな代入文があれば変数xが必要なのって自明じゃない?宣言とか必要? Ruby: 必要ないよね。っていうか変数宣言とか古臭くない? JavaScript: そうかなー。 Python: 少しダサイかも。ほら断舎離ブームだし要らないものは捨てなきゃ! JavaScript: 要らないかなぁ、変数宣言。Pythonちゃんは関数がネストしているときに外側のスコープの変数に代入するのって

    言語女子会2: varは必要?/privateがない? - 西尾泰和のはてなダイアリー
    raimon49
    raimon49 2012/03/22
    リフレクションを持ち出されたらJavaちゃんのprivateすらも逃げ出すしかない…。
  • 不完全にしてかなり言葉足らずな比較プログラミング言語学 - 西尾泰和のはてなダイアリー

    プログラミング言語は人が作ったもの。人は誤るもの。なので完璧なプログラミング言語は存在しない。 「人は誤るもの、しかし誤りに固執するのは馬鹿の所業だ。」(キケロ) プログラミング言語も、間違った設計をして、馬鹿でない人がそれを修正することの繰り返しで発展してきた。 というわけで言語間での設計判断のい違いとか失敗した設計とかを収集中。一部抜粋して講義資料に入れるつもりなので他の事例をご存知でしたらぜひ情報をいただけるとありがたいです。 if(x = 0) C言語では代入が式であるためif(x == 0)のつもりでif(x = 0)と書いてしまい、常に偽になってしまう。 x = 0の値はint、条件式はboolでないといけないので型エラーだよ派: Java x = 0は式ではないので条件式に入れたら構文エラーだよ派: Python 条件式にx = 0をいれたらx == 0と解釈するよ派: H

    不完全にしてかなり言葉足らずな比較プログラミング言語学 - 西尾泰和のはてなダイアリー
    raimon49
    raimon49 2010/07/25
    Javaって厳格。
  • Python における関数型プログラミング のための functools, itertools (1) – Haskell と同じ名前の関数たち

    1. 関数型プログラミングのための functools, itertools モジュール Python 2.7 Python の標準ライブラリには、関数型プログラミングにとって重要なモジュールがある。 9.7. itertools — Functions creating iterators for efficient looping 9.8. functools — Higher-order functions and operations on callable objects itertools, functools は、 The Python Standard Library — Python v2.7.3 documentation 9. Numeric and Mathematical Modules の階層の中にある。 9. Numeric and Mathematical

    Python における関数型プログラミング のための functools, itertools (1) – Haskell と同じ名前の関数たち
    raimon49
    raimon49 2010/06/07
    itertoolsの考え方。
  • 1