[問題] scala使用上的一些疑問

作者: ireullin (raison detre)   2015-05-07 11:15:18
小弟個人比較熟悉的語言是ruby與c++
目前在自學scala
已經可以用scala寫出一些簡單的東西
完成一些工作
多半是寫script取代ruby的腳色
雖然覺得還是ruby比較好用
但是就是把這些當作是練習所以故意用scala
但是過程中卻覺得有一些scala的精隨還沒辦法掌握
希望前輩們提點一下
如果不適合在這邊發問
請跟我說,我會把這篇文章刪除
1. List的用法或時機
我想在寫程式的時候遇到需要用 container 來儲存資料的機會很高
如java中
ArrayList<int> al = new ArrayList<int>();
for(int i=0; i<10; i++) al.add(i);
但在scala中
var list = List(0)
for(i <- 1 to 9) list = i :: list
list = list.reverse
list 每次都回傳一個新的物件而不是將值儲存在物件自己本身
而且都插在最前面
最後使用的時候還要反過來
這樣效率真的有比較高?
還是說list根本不是在這種狀況下使用的
如果不是,建議是?
2. 尾遞迴指的是
遞迴我懂,但是很多地方都特別提到尾遞迴這個詞
有特殊的意義或用途嗎
3. DSL 的用途是
http://www.scala-lang.org/old/node/1403
雖然這篇裡頭有講
但我不是很能意會
以上
麻煩大家了
作者: fireslayer (fireslayer)   2015-05-07 11:19:00
tail-recursive表現跟一般遞迴不一樣keyword: tail recursive(recursion)
作者: ireullin (raison detre)   2015-05-07 11:36:00
謝謝,尾遞迴的方式我懂了
作者: sivid (go back to sleep)   2015-05-07 16:27:00
你似乎把List當mutable用?scala.collection.mutable scala.collection.immutable兩種不一樣
作者: ireullin (raison detre)   2015-05-07 17:19:00
了解,是因為programming in scala中大部分都使用list當範例,所以才想說是不是我哪裡搞錯了

Links booklink

Contact Us: admin [ a t ] ucptt.com