Haskell が Python に与えた影響として最も大きなものは、内包表記の採用と思われます。
他の言語を習得してから Python を勉強し始めた時、記法が独特であるが故、しばしば戸惑うのが内包表記です。
# Python での内包表記の例 >>> print([i ** 2 for i in range(1, 10 + 1)]) [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
実はこの内包表記の記法は、Haskell の内包表記から取り入れられたもの(のはず)です。
Haskell での内包表記は以下のようになります。
# Haskell での内包表記の例 main = print [i^2 | i <- [1..10]] -- [1,4,9,16,25,36,49,64,81,100]Python の内包表記と、極めて近い記法ですよね。
Python の内包表記には条件式を追加できますが、これも Haskell と同様です。
# Python での内包表記 with 条件式の例 >>> print([i ** 2 for i in range(1, 10 + 1) if i % 3 != 0]) [1, 4, 16, 25, 49, 64, 100]
# Haskell での内包表記 with 条件式の例 main = print [i^2 | i <- [1..10], i `mod` 3 /= 0] -- [1,4,16,25,49,64,100]条件式を含めても、やはり Python の内包表記と Haskell の内包表記は似ています。
独特な記法で知られる Python の内包表記ですが、これはHaskell の影響だった、というわけです。
他に Haskell が影響を与えたものとして明らかなのは、itertoolsライブラリです。実際、公式ページに Haskell 等の影響を受けたと書かれています。
Python はマルチパラダイム言語ですが、関数型言語に関しては、Haskell からの影響が強い、というのは知っておいて損はないと思います。
0 件のコメント:
コメントを投稿