友達を感動させる10の「ワンライナー」

過去1週間に、「友だちを感動させる10個の<MY_LANGUAGE>のワンライナー」というタイトルでいくつかのトピックが登場しました。 それらを翻訳し、比較のために1つのトピックに入れることにしました。 全体の波はScalaで始まりました。

さあ、行こう!





スカラ



これらは、あなたの友人や多分女性さえも感動させるScala言語の力を示す10のワンライナーです:)。 また、関数型プログラミングとScala構文を使用したすばらしい例でもありますが、これらはよく知らないかもしれません。 実際の例を見る以外に、それを研究するより良い方法はないと思います。
  1. リスト内の各アイテムを2倍にします。


    map



    関数は、リストの各要素を受け取り、対応する関数をそれに適用します。 この例では、各要素を取得して2倍します。その結果、 foldLeft



    foldLeft



    を使用する他の例とは異なり、リスト以外の値を1つだけ返すのとは異なり、同じサイズのリストが返されます。
     (1 to 10) map { _ * 2 }
          
          



    元の記事の解説では、オプションも提案されました。
     (1 to 10) map (2*)
          
          





  2. リスト内のすべての数字を要約します。


    reduceLeft



    の最も一般的な使用例は、リスト内の数値の合計です。 この例では、to range関数to



    使用して1から1000までの数値を合計して、数値のシーケンスto



    作成し、反復と合計のためにreduceLeft



    to



    作成します。
     (1 to 1000).reduceLeft( _ + _ )
          
          



    元の記事に対するコメントで、最適なオプションが提案されました。

     (1 to 1000).sum
          
          





  3. 部分文字列の出現の確認


    この例では、リストの単語が指定された文字列にある場合、ブール値を返します。 この例を使用して、ツイートに興味のある単語が含まれていることを確認しました。 はい、技術的にはこれらは3行ですが、最初の2行は単なる変数の仕事です。
     val wordlist = List("scala", "akka", "play framework", "sbt", "typesafe") val tweet = "This is an example tweet talking about scala and sbt." (words.foldLeft(false)( _ || tweet.contains(_) ))
          
          



    元の記事に対するコメントで、最適なオプションが提案されました。

     ... wordList.exists(tweet.contains(_))
          
          





  4. ファイルから読み取る


    この例は、Javaの背景に対して印象的です。1行でファイルを読み取る非常に一般的な例です。 実際には2つの例があります。1つはファイル全体を文字列に読み込み、もう1つはファイルを1行ずつリストに読み込みます。
     val fileText = io.Source.fromFile("data.txt").mkString val fileLines = io.Source.fromFile("data.txt").getLines.toList
          
          





  5. お誕生日おめでとう


    「Hapy Birthday」という歌を表示するワンライナー。 これは、Scalaの三項演算子と、 map



    foreach



    組み合わせを示していmap



     (1 to 4).map { i => "Happy Birthday " + (if (i == 3) "dear NAME" else "to You") }.foreach { println }
          
          





  6. 番号リストのフィルタリング


    partition



    の使用に基づいて、数値のリストを2つのカテゴリにフィルターします。 この例では、テストの結果に基づいて2つの学生リストが作成されます。
     val (passed, failed) = List(49, 58, 76, 82, 88, 90) partition ( _ > 60 )
          
          





  7. WebサービスからのXMLの取得と解析


    XMLはScalaのネイティブフレームワークであるため、XMLの解析は簡単です。 Twitter検索フィードを取得する例を次に示します。
     val results = XML.load("http://search.twitter.com/search.atom?&q=scala")
          
          





  8. リスト内の最小(または最大)を検索します


    reduceLeft



    を使用してリストを反復処理し、関数を適用するreduceLeft



    2つの例。
     List(14, 35, -7, 46, 98).reduceLeft ( _ min _ ) List(14, 35, -7, 46, 98).reduceLeft ( _ max _ )
          
          



    元の記事に対するコメントで、最適なオプションが提案されました。
     List(14, 35, -7, 46, 98).min List(14, 35, -7, 46, 98).max
          
          





  9. 並列処理


    Scala 2.9では、「並列コレクション」と呼ばれる新しいタイプのコレクションが導入されましたforeach



    map



    filter



    などの一括操作を実行するためにマルチコアプロセッサを使用します。



    この例は、並列コレクションの使用を示しています。 dataListリストで定義された多くのデータと、プロセッサを非常に頻繁に使用するprocessItem関数があるとします。 次のワンライナーは、並列リスト処理を提供します。
     val result = dataList.par.map(line => processItem(line))
          
          





  10. エラトステネスのふるい


    さて、今回はこの例は完全に実用的ではなく、技術的には1行ではありません。先に定義した演算子に依存しているからです。しかし、たとえ判読できなくてもとにかくクールです。 Daniel Sobralは、Sieve of Eratosthenesアルゴリズムの実装を記述しました 。これは、数値が素数であるかどうか判断するために使用されます。
     (n: Int) => (2 to n) |> (r => r.foldLeft(r.toSet)((ps, x) => if (ps(x)) ps -- (x * x to n by x) else ps))
          
          



    |>演算子の定義が必要です。その構文はF#から借用されています。 たとえば、 Steve Gilhamのブログをご覧ください。

元の投稿: 「友達を感動させる10個のScala One Liners」

投稿者: Marcus Kazmierczak





CoffeScript



HNに最近投稿されたMarcus Kazmierczakブログの「 友達を 感動させるためのScalaの10のシングルライン 」という記事を読んだかもしれません。 私はScala(またはJava)を知らないが、見栄えが良いので、友人を感心させることにした。JavaからScalaに切り替えている人もいます。 すべての例を実行する環境としてnode.jsを使用します。



  1. リスト内のすべてのアイテムを2倍にする


    マーカスは、 map



    機能で自慢し始めます。 range



    と匿名関数を使用して同じことができます。
     [1..10].map (i) -> i*2
          
          



    しかし、あなたはより表現力豊かな形で書くことができます
     i * 2 for i in [1..10]
          
          





  2. 番号リスト合計


    Javascript(およびCoffeeScriptの拡張機能)には、組み込みのmap



    およびreduce



    関数もあります。
     [1..1000].reduce (t, s) -> t + s
          
          



    (reduce == reduceLeft、reduceRightも使用可能です)



  3. 部分文字列を確認


    some



    方法がsome



    ため、非常に簡単です。 配列内の要素のいずれかが関数によって満たされる場合、trueを返します。
     wordList = ["coffeescript", "eko", "play framework", "and stuff", "falsy"] tweet = "This is an example tweet talking about javascript and stuff." wordList.some (word) -> ~tweet.indexOf word
          
          



    しかし、これは対応する単語を返します:
     wordList.filter (word) -> ~tweet.indexOf word
          
          



    " ~



    "はCoffeeScriptの特別な演算子ではなく、単なる汚いトリックです。 これは、ビット単位のNOT演算子であり、オペランドのビットを反転します。 実際には、これは-x-1



    同等です。 ここでは、 -1



    より大きいインデックスのチェックを行い、 -(-1)-1 == 0



    がfalseと評価されることに基づいて動作します。



  4. ファイルを読む


    クライアント側のJavaScriptユーザーはすでにこの考えに精通しています。
     fs.readFile 'data.txt', (err, data) -> fileText = data
          
          



    同期バージョンも使用できます。
     fileText = fs.readFileSync('data.txt').toString()
          
          



    ただし、node.jsでは、これはアプリケーションの起動手順でのみ受け入れられます。 コードで非同期バージョンを使用する必要があります。



  5. お誕生日おめでとう


    まず、Scalaバージョンを1対1で表示できます。
     [1..4].map (i) -> console.log "Happy Birthday " + (if i is 3 then "dear Robert" else "to You")
          
          



    しかし、それは可能であり、より良いです。 これはほとんど擬似コードのようになります:
     console.log "Happy Birthday #{if i is 3 then "dear Robert" else "to You"}" for i in [1..4]
          
          





  6. 番号リストのフィルタリング


    数字のリストのフィルタリングは非常に似ていることが判明しました。
     passed = [] failed = [] (if score > 60 then passed else failed).push score for score in [49, 58, 76, 82, 88, 90]
          
          



    (フィルターは引き続き使用できますが、1行は表示されません)



  7. WebサービスからのXMLの取得と解析


    XML何? これについて聞いたことがありません。 代わりにJSONを取得しましょう。
     request.get { uri:'path/to/api.json', json: true }, (err, r, body) -> results = body
          
          





  8. リスト内の最小(または最大)を検索します


    ここでapply



    機能は便利です。 配列を引数のリストとして渡すことで関数を呼び出すことができますMath.max



    Math.min



    は可変数の引数を受け取ります。 Math.max 30, 10, 20



    返します。 配列を操作してみましょう。
     Math.max.apply @, [14, 35, -7, 46, 98] # 98 Math.min.apply @, [14, 35, -7, 46, 98] # -7
          
          





  9. 並列処理


    まだ存在しません。 子プロセスを作成して対話したり、 WebWorkers APIを使用したりできます 。 スキップ。



  10. エラトステネスのふるい


    これを1行に移動できませんでした。 アイデアはありますか?
     sieve = (num) -> numbers = [2..num] while ((pos = numbers[0]) * pos) <= num delete numbers[i] for n, i in numbers by pos numbers.shift() numbers.indexOf(num) > -1
          
          



    更新(6月5日): @dionyzizからコンパクトバージョンが送られてきました。

     primes = [] primes.push i for i in [2..100] when not (j for j in primes when i % j == 0).length
          
          



    オリジナルに似た真の単一行バージョンに使用できます。
     (n) -> (p.push i for i in [2..n] when not (j for j in (p or p=[]) when i%j == 0)[0]) and n in p
          
          



    またはやや効率的に:
     (n) -> (p.push i for i in [2..n] when !(p or p=[]).some((j) -> i%j is 0)) and n in p
          
          





  11. ボーナス


    あなたが今まで見た中で最も読まれたfizzbuzz



    バージョン:
     "#{if i%3 is 0 then 'fizz' else ''}#{if i%5 is 0 then 'buzz' else ''}" or i for i in [1..100]
          
          



    satyrからのちょっとしたヒントを使って、さらに簡単ですが、注意が必要です。
     ['fizz' unless i%3] + ['buzz' unless i%5] or i for i in [1..100]
          
          



元の投稿: 「友達を感動させる10個のCoffeeScript One Liners



投稿者: リカルド・トマシ





F#



10の精神で「 Scalaで友達を感動させる10のシングルライナー 」は、F#のシングルライナーです。
  1. リスト内のすべての数字を2倍にする


    簡単です。F#にもmap



    がありmap



     [1 .. 4] |> Seq.map (fun x -> x * x);;
          
          





  2. 番号リスト合計


    F#にsum



    があるのと同じくらい簡単です:
     [1 .. 4] |> Seq.sum;;
          
          





  3. 部分文字列を確認


    そして、それは簡単です。
     ["f#"; "scala"] |> Seq.find(fun w -> "this tweet contains f#".Contains(w));;
          
          





  4. ファイルの読み込み(つまらない!)


    F#にはすべてのライブラリがあります。 NET ファイルのすべての行をシーケンスとして読み取るのは非常に簡単です。
     File.ReadLines(@"file.txt") |> Seq.map(fun l -> l.Length) |> Seq.sum;;
          
          





  5. お誕生日おめでとう


    また、退屈な...このような:
     [1 .. 4] |> Seq.map (fun i -> "Happy Birthday " + (if i = 3 then "dear NAME" else "to you")) |> Seq.iter Console.WriteLine;;
          
          





  6. リストのフィルタリング(実際の分割)


    組み込みのpartition



    関数を使用して、リストを簡単に分割できます。
     [49; 58; 76; 82; 88; 90] |> List.partition (fun i -> i > 60);;
          
          





  7. XMLの取得と解析


    繰り返しますが、.NETライブラリは便利です。 残念ながら、これはF#の正確な1行ではありません。 しかし、Don Symeはこれを同期的および非同期的に行う方法示しています



  8. リストで最大値と最小値を検索します


    これを行うには、F#ネットワーク構築関数で:
     [49; 58; 76; 82; 88; 90] |> Seq.min;; [49; 58; 76; 82; 88; 90] |> Seq.max;;
          
          





  9. 並列処理


    これはJ Rochaの例です。 isprimeメソッドがあり、1〜50,000の最後の桁でグループ化された素数を取得するとします。PSeqはシーケンスを並列処理します。
     [|1 .. 50000|] |> PSeq.filter isprime |> PSeq.groupBy (fun i -> i % 10) |> PSeq.map (fun (k, vs) -> (k, Seq.length vs)) |> Seq.toArray |> Seq.sort |> Seq.toList;;
          
          



元の投稿: 「F#Oneライナーで友達を感心させる」

投稿者: ウィル・フィッツジェラルド





ルビー



Scalaの表現力を示すために、10の単一行の例のリストが公開されています。 CoffeeScriptバージョンはすぐに登場したので、Rubyバージョンだけを公開したと思いました。 Rubyの構文はScalaよりも少しすっきりしていますが、本質的には(少なくともこれらの例が示す限りでは)比較的似ています。

  1. リスト内のすべての数字を2倍にする


     (1..10).map { |n| n * 2 }
          
          





  2. 番号リスト合計


     (1..1000).inject { |sum, n| sum + n }
          
          



    または、(組み込み) Symbol#to_proc



    使用しSymbol#to_proc



    。これは、Rubyバージョン1.8.7以降で使用可能です。
     (1..1000).inject(&:+)
          
          



    またはこのように:
     (1..1000).inject(:+)
          
          





  3. 部分文字列を確認


     words = ["scala", "akka", "play framework", "sbt", "typesafe"] tweet = "This is an example tweet talking about scala and sbt." words.any? { |word| tweet.include?(word) }
          
          





  4. ファイルを読む


     file_text = File.read("data.txt") file_lines = File.readlines("data.txt")
          
          



    後者の場合、配列の各要素の末尾に「\ n」が含まれます。これは、 .map { |str| str.chop }



    .map { |str| str.chop }



    または代替バージョンの使用:
     File.read("data.txt").split(/\n/)
          
          





  5. お誕生日おめでとう


     4.times { |n| puts "Happy Birthday #{n==2 ? "dear Tony" : "to You"}" }
          
          





  6. 番号リストのフィルタリング


     [49, 58, 76, 82, 88, 90].partition { |n| n > 60 }
          
          





  7. WebサービスからのXMLの取得と解析


     require 'open-uri' require 'hpricot' results = Hpricot(open("http://search.twitter.com/search.atom?&q=scala"))
          
          



    この例では、open-uriおよびhpricotまたは同等のライブラリが必要です(組み込みを使用できます)。 これはあまり多くのコードではありませんが、Scalaはここで明らかに勝ちます。



  8. リスト内の最小(または最大)を検索します


     [14, 35, -7, 46, 98].min [14, 35, -7, 46, 98].max
          
          





  9. 並列処理


     require 'parallel' Parallel.map(lots_of_data) do |chunk| heavy_computation(chunk) end
          
          



    Scalaとは異なり、マルチコアサポートは組み込まれていません。 この例では、 並列または類似のgemが必要です。



  10. エラトステネスのふるい


    Scalaのワンライナーは非常に難解ですが、完全に判読できません。 Rubyで複数行を必要とする単純な実装:
     index = 0 while primes[index]**2 <= primes.last prime = primes[index] primes = primes.select { |x| x == prime || x % prime != 0 } index += 1 end p primes
          
          



    この例はStackOverflow使用しています。


元の投稿: 「友達を感動させる10個のRuby One Liner」

投稿者: Antonio Cangiano





クロージュア



今日、「 Scalaで 友達を感動させる 10個のシングルライン 」という興味深い投稿を見た後CoffeeScriptで友達を感動させる10個のシングルライン 」というブログ投稿に誰かが投稿しました 。 これらの2つの投稿は小さなタスクを示しています(ほとんどのタスクは最新のプログラミング言語で簡単な解決策を持っています)。各タスクは約1行のコードで実行されます。



私のお気に入りのプログラミング言語であるClojureについても同じことを行うのが適切だと思います。
  1. リスト内のすべての数字を2倍にする


     (map #(* % 2) (range 1 11))
          
          





  2. 番号リスト合計


     (reduce + (range 1 1001))
          
          





  3. 部分文字列を確認


    ここで正規表現を使用するのが適切だと思います:
     (def tweet "This is an example tweet talking about clojure and emacs.") (def regex (re-pattern (apply str (interpose "|" ["clojure" "logic" "compojure" "emacs" "macros"])))) (re-seq regex tweet) ;   ,   true/false
          
          



    コメンテーターが示唆したように、Clojureセットを使用することにより、正規表現を使用せずにこの問題を解決できます。
     (def tweet "This is an example tweet talking about clojure and emacs.") (def is-word? (set ["clojure" "logic" "compojure" "emacs" "macros"])) (not (nil? (some is-word? (.split tweet " ")))) ;  true/false
          
          





  4. ファイルを読む


     (def file-text (slurp "data.txt")) ;    (def file-lines (clojure.contrib.io/read-lines "data.txt")) ;   
          
          



    Clojure Contribは今後のClojureのリリースで非推奨となり、 clojure.contrib.io/read-lines



    (line-seq (clojure.java.io/reader (clojure.java.io/file “data.txt”)))



    clojure.contrib.io/read-lines



    (line-seq (clojure.java.io/reader (clojure.java.io/file “data.txt”)))



    と書くことができます(line-seq (clojure.java.io/reader (clojure.java.io/file “data.txt”)))



    Clojure 1.3以降。 これを指摘してくれたアーロンに感謝します。



  5. お誕生日おめでとう


     (doseq [l (map #(str "Happy Birthday " (if (= % 2) "dear Rich" "to You")) (range 4))] (println l))
          
          



    代替バージョン:
     (dotimes [n 4] (println "Happy Birthday " (if (= n 2) "dear Rich" "to You")))
          
          





  6. 番号リストのフィルタリング


     (partition-by #(> % 60) [49 58 76 82 88 90])
          
          





  7. WebサービスからのXMLの取得と解析


     (clojure.xml/parse "http://search.twitter.com/search.atom?&q=clojure")
          
          





  8. リストで最小値と最大値を検索します


     (reduce max [14 35 -7 46 98]) (reduce min [14 35 -7 46 98]) ;;     ((juxt #(reduce max %) #(reduce min %)) [14 35 -7 46 98]) ;  [98 -7]
          
          





  9. 並列処理


     ;; ,  process-line -     ,    (pmap process-line lines) ;    "p"  map
          
          





  10. エラトステネスのふるい


    「パフォーマンスと美しさの点で」「エラトステネスのふるい」に対する1行の解決策では不十分です。 この問題を解決するには、「誰でもエラトステネスのふるいを愛する」という題名のクリストフ・グランドの作品を​​チェックすることをお勧めします。



  11. FizzBu​​zzソリューション


     (map #(cond (zero? (mod % 15)) "FizzBuzz" (zero? (mod % 3)) "Fizz" (zero? (mod % 5)) "Buzz" :else %) (range 1 101))
          
          



元の投稿: 「友だちを感動させる10個のClojure Oneライナー」

投稿者: Baishampayan





Python



Scala、Ruby、Clojure、CoffeeScriptで10の驚くべきワンライナーを行った後、Pythonで同じことをするのは面白いと思いました。



多くのノイズなし...行きましょう。 変数の宣言とインポートは、必要に応じて別々の行にあることに注意してください。 また、迅速な検証のために結果が標準出力に出力されるように、各行が書き込まれます。



この投稿は、おそらく私が書いた最速の記事の1つです。
  1. リスト内のすべての数字を2倍にする


     print map(lambda x: x * 2, range(1,11))
          
          





  2. 番号リスト合計


     print sum(range(1,1001))
          
          





  3. 部分文字列を確認


     wordlist = ["scala", "akka", "play framework", "sbt", "typesafe"] tweet = "This is an example tweet talking about scala and sbt." print map(lambda x: x in tweet.split(),wordlist)
          
          





  4. ファイルを読む


     print open("ten_one_liners.py").readlines()
          
          





  5. お誕生日おめでとう


     print map(lambda x: "Happy Birthday to " + ("you" if x != 2 else "dear Name"),range(4))
          
          





  6. 番号リストのフィルタリング


     print reduce(lambda(a,b),c: (a+[c],b) if c > 60 else (a,b + [c]), [49, 58, 76, 82, 88, 90],([],[]))
          
          





  7. WebサービスからのXMLの取得と解析


     from xml.dom.minidom import parse, parseString import urllib2 # note - i convert it back into xml to pretty print it print parse(urllib2.urlopen("http://search.twitter.com/search.atom?&q=python")).toprettyxml(encoding="utf-8")
          
          





  8. リストで最小値と最大値を検索します


     print min([14, 35, -7, 46, 98]) print max([14, 35, -7, 46, 98])
          
          





  9. 並列処理


     import multiprocessing import math print list(multiprocessing.Pool(processes=4).map(math.exp,range(1,11)))
          
          





  10. エラトステネスのふるい


     n = 50 #      2  50 print sorted(set(range(2,n+1)).difference(set((p * f) for p in range(2,int(n**0.5) + 2) for f in range(2,(n/p)+1))))
          
          



元の投稿: 「友達を感動させる10個のPython oneライナー」

投稿者: Dhananjay Nene





C#



  1. リスト内のすべての数字を2倍にする
     Print("Multiple each item in a list by 2", Enumerable.Range(1, 10).Select(i => i * 2));
          
          





  2. 番号リスト合計


     Print("Sum a list of numbers", Enumerable.Range(1, 1000).Sum());
          
          





  3. 部分文字列を確認


     var wordlist = new[] { "C#", "and stuff" }; var tweet = "This is an example tweet talking about C# and stuff"; Print("Verify if a word exists in string", wordlist.Any(word => tweet.IndexOf(word) > -1)); Print("Show matched words in string", wordlist.Where(word => tweet.IndexOf(word) > -1));
          
          





  4. ファイルを読む


     Print("Read in a File", File.ReadAllBytes("oneliners.exe").Length);
          
          





  5. お誕生日おめでとう


     Print("Happy Birthday", Enumerable.Range(1, 4).Select((i) => string.Format("Happy Birthday {0} ", i == 3 ? "dear NAME" : "to You")));
          
          





  6. 番号リストのフィルタリング


     var passed = new List<int>(); var failed = new List<int>(); (from bucket in new[] { passed, failed } from i in new[] { 49, 58, 76, 82, 88, 90 } select new { bucket, i }).ToList().ForEach((tuple) => tuple.bucket.AddRange(Enumerable.Repeat(tuple, 1).Where((tup) => (tup.bucket == passed && tup.i > 60) || (tup.bucket == failed && tup.i <= 60)).Select((tup) => tup.i))); Print("Filter list of numbers >60", (IEnumerable<int>)passed); Print("Filter list of numbers <=60", (IEnumerable<int>)failed);
          
          





  7. WebサービスからのXMLの取得と解析


     Print("Fetch and Parse an XML web service", XDocument.Load("http://search.twitter.com/search.atom?&q=scala"));
          
          





  8. リストで最小値と最大値を検索します


     Print("Find minimum in a list", Enumerable.Min(new[] { 14, 35, -7, 46, 98 })); Print("Find maximum in a list", Enumerable.Max(new[] { 14, 35, -7, 46, 98 }));
          
          





  9. 並列処理


     Print("Parallel Processing", Enumerable.Range(1, 10).AsParallel().Select((i)=>i*2).AsEnumerable());
          
          





  10. フィズバズ


     Print("Fizzbuzz", Enumerable.Range(1, 15).Select((i)=>i + (i%3==0?"fizz":"") + (i%5==0?"buzz":"")));
          
          



元の投稿: 「10 C#One Liners to Impress Your Friends」

投稿者: リチャード・バークビー





ハスケル



ミームに続いて( scalarubyclojurepythonf#coffeescriptc# )。



  1. リスト内のすべての数字を2倍にする
     map (*2) [1..10]
          
          





  2. 番号リスト合計


     foldl (+) 0 [1..1000] --   sum [1..1000]
          
          





  3. 部分文字列を確認


     import Data.List let wordlist = ["monad", "monoid", "Galois", "ghc", "SPJ"] let tweet = "This is an example tweet talking about SPJ interviewing with Galois" or $ map (flip isInfixOf tweet) wordlist --   any (flip isInfixOf tweet) wordlist
          
          





  4. ファイルを読む


     fileText <- readFile "data.txt" let fileLines = lines fileText --   let fileLines = fmap lines $ readFile "data.txt"
          
          





  5. お誕生日おめでとう


     mapM_ putStrLn ["Happy Birthday " ++ (if x == 3 then "dear NAME" else "to You") | x <- [1..4]]
          
          





  6. 番号リストのフィルタリング


     let (passed, failed) = partition (>60) [49, 58, 76, 82, 88, 90]
          
          





  7. WebサービスからのXMLの取得と解析


    この例では、 curl



    およびxml



    パッケージが必要です。 インストールについては、 RWHを参照してください。
     import Network.Curl import Text.XML.Light import Control.Monad let results = liftM parseXMLDoc $ liftM snd (curlGetString "http://search.twitter.com/search.atom?&q=haskell" []) --   Control.Applicative let results = parseXMLDoc . snd <$> curlGetString "http://search.twitter.com/search.atom?&q=haskell" []
          
          





  8. リストで最小値と最大値を検索します


     foldl1 min [14, 35, -7, 46, 98] foldl1 max [14, 35, -7, 46, 98] --   minimum [14, 35, -7, 46, 98] maximum [14, 35, -7, 46, 98]
          
          





  9. 並列処理


    この例では、 parallel



    パッケージが必要です。

     import Control.Parallel import Control.Parallel.Strategies parMap rseq (*2) [1..100]
          
          





  10. 素数の生成


     let pgen (p:xs) = p : pgen [x|x <- xs, x `mod` p > 0] take 40 (pgen [2..])
          
          



元の投稿: 「友達を感動させる10個のHaskell One Liners」

投稿者: Michael Fogus






そして今、あなたのオプション、そしてホリバーが始まりますように!



All Articles