Drkcore

16 11 2009 Haskell Python Tweet

リスト内包表記で素数チェック

プログラミングHaskell読みはじめた。この本はHaskellプログラミングの入門書というよりは、Haskellプログラミングとはどういう考え方で書いていくかの入門書的な感じがする。いきなりこれ読んでもhaskellでコード書けないんじゃないだろうか。

4章のリスト内包表記の章で、ある数の因数を求める関数を定義して、それを用いて素数判定をしていたのでpythonでもやってみた。

def factors(n):
  return [x for x in range(1,n+1) if n % x == 0]

def is_prime(n):
  return True if len(factors(n)) == 2 else False

あとHaskellだと

[x|x <- xs | xs <- a]

でconcatenateできて便利なんでこれもpythonで、とか思ったんだけど

リストの要素が常にひとつのときのみ

a = [[1], [2], [3]]
[x for [x] in a] # [1, 2, 3]

ってやればできるんだけど、二つ以上の要素になった場合が分からんかった。

ProductName プログラミングHaskell
Graham Hutton
オーム社 / 2940円 ( 2009-11-11 )


この本ほとんど疑似コード(?)なので考えるにはよいですな。お薦め。

About

  • もう5年目(wishlistありマス♡)
  • 最近はPythonとDeepLearning
  • 日本酒自粛中
  • ドラムンベースからミニマルまで
  • ポケモンGOゆるめ

Tag

Python Deep Learning javascript chemoinformatics Emacs sake and more...

Ad

© kzfm 2003-2021