4

3 つの関数を作成する必要がありました。1 つは華氏を摂氏に変換する関数、もう 1 つは摂氏をケルビンに変換する関数、もう 1 つは最初の 2 つの関数を使用して華氏をケルビンに変換する関数です。

私はこれまで Haskell で遊んだことがなかったので、これには比較的長い時間がかかりましたが、今ではかなり単純であることがわかりました。

とにかく、最初の 2 つの関数用にインタラクティブな Haskell プログラムを作成し、それらを使用して構成し、パイプを使用して実行して、3 番目の関数と同等のものを取得する必要があります。私はパイプを読んでいますが、それは十分に単純なようです。私の主な問題は、機能をインタラクティブにすることです。

ヘルプ、ヒント、リソースは大歓迎です!

4

1 に答える 1

4

このinteract関数は、問題を解決するときに非常に役立つはずです。UNIX の規則では、プロセスは (温度などの数字ではなく) テキストを使用して通信する必要があるため、関数は を受け取り、 を返すinteract関数をラップすることを意味します。これは、華氏/摂氏関数を、数値ではなく文字列を受け取って返す新しい関数でラップする必要があることを意味します。StringString

開始するための例として、このプログラムは、指定されたすべての文字列を大文字にします。

module Main (main) where

import Data.Char (toUpper)

main :: IO ()
main = interact upperCase

upperCase :: String -> String
upperCase = map toUpper

次のようにコンパイルできます。

ghc uppercase.hs

...そして、これを行うことで(Linuxで)使用できます:

echo "bla" | ./uppercase
# Result: "BLA"
于 2012-07-15T15:18:56.110 に答える