作者Schelfaniel (Test)
看板Ruby
標題Re: [連結] Ruby sucks(All those shaky languages..)
時間Tue Aug 15 09:44:12 2006
※ 引述《Schelfaniel (Test)》之銘言:
: 我是覺得 Java 純就語言來說不算難...
: 但是它元件一堆...算是自由軟體業的其中一個大本營...
: 光是 Apache 那邊的東西就夠多了...
: 當然 Sun 自己也提了一堆架構...( 這邊也一堆專有名詞 @@ )
: 我是覺得多學一些語言, 不能算是什麼高手啦...
: 像我比較在碰的, 其實和 godfat 類似, 就是 D, Ruby, Common Lisp...
: 其他比較少碰...之前還碰一下 Haskell 但是實在不太擅長...@_@
: Haskell 寫個猜數字遊戲 (1-100) 電腦會回報太大還是太小, 都陷入苦境 :QQ
: ( 當然後來還是寫出來了, 不過不太漂亮就是了 @_@ )
: 會碰這些也是有點碰了一堆商業元件, 想要有點真正回到寫程式的感覺吧 @_@
先貼初版的給你好了 (二版的等我回去再找找)
這版的缺點是, 只要輸入不是數字的馬上就 Exception @_@
( Lisp 可以用 integerp 來查看它是不是數字, 不過 Haskell 我不知道 :QQ)
而且它不會計算你輸入過幾次以及目前的可能範圍....
(如你猜 50, 結果是太大的話, 可能範圍就變成 1-50)
(不過這個只是在函式參數再多加幾個就可以達成)
最後是 Haskell 的排版, 以下每行前面的空格是該語言要求要空格...
我是覺得這樣很容易造成一直往後移...
module Main
where
import IO
import Random
main = do
hSetBuffering stdin LineBuffering
num <- randomRIO (1::Int, 100)
putStrLn "I’m thinking of a number between 1 and 100"
doGuessing num
doGuessing num = do
putStrLn "Enter your guess:"
guess <- getLine
let guessNum = read guess
if guessNum < num
then do putStrLn "Too low!"
doGuessing num
else if read guess > num
then do putStrLn "Too high!"
doGuessing num
else do putStrLn "You Win!"
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.220.34.34
1F:推 jaiyalas:感激不盡(大心)~ 趕快來研究一下~>///< 08/15 09:46
2F:推 b6s:看到這個忽然想離題。IIS.SINICA莊副想徵人做functional prog 08/15 13:06
3F:推 godfat:這個離題遠到太過火了… =.= 08/15 14:09
4F:→ godfat:所以…幾日後砍掉好了,欲備份請備份 08/15 14:12
5F:→ Schelfaniel:還有一個方法是把板名改成 Ruby & Functional Languag 08/15 14:27
6F:→ godfat:這樣怪怪的 @@" btw, 會留一份做記錄 08/15 14:41
7F:→ Schelfaniel:或是加開屬性為閒聊的文?? 08/15 14:51
8F:→ godfat:本來就有吧?所以應該換標題的,而且也不要太偏某語言 08/15 14:52
9F:→ Schelfaniel:名稱已修正 08/15 15:06
10F:→ b6s:版主:抱歉 <(_ _)> 08/17 03:19
11F:→ godfat:推文不要緊,是本篇完全在講 Haskell 太誇張了 @@ 08/17 13:04