顯示廣告
隱藏 ✕
看板 Programming
作者 gary8520 (柳丁元)
標題 [閒聊]有人會寫J語言嗎?
時間 2011年10月14日 Fri. PM 02:19:17


我是個程式初學的大學生
讀的和程式可說相關性不太大
在學過基本的C語言後(學到structure)

對程式懂的還滿少的(汗


意外碰到了一個奇怪的語言J

因為它可以處理矩陣、複數
又是免費可以使用

又因著自己喜歡奇怪的東西就自己看官網上的教學自己學
http://www.jsoftware.com/docs/help701/learning/contents.htm



自己隨便寫了個用連分數開根號的小程式
(其實J有開根號的built-in function, 是「%:」)

用J語言中的「f ^:_」(注:_表無限,^:_表無限次方)

將一函數使用在一數字,無限次,直達穩定(f(x)=x時)


我令一個單變數動詞root(以C語言來說,像是funtion)
右變數動詞的引數代號為y

root=: 3 : 0
n=. 0
r=. 1    
if.y
do. r=.0j1
y=.-y
end.
while. y > *:(n+1)
do. n=.n+1
end.
a=. y -(*:n)
]r&*n + ((a % (2*n)&+)^:_) 1
)

執行結果


   root 2
1.41421
 
   root 100
10

   root 236
15.3623

   root 5.248
2.29085


   root _2
0j1.41421

即為0+1.41421i


   root 0.001
掛掉XD
---------------------------------------------

統計軟體R似乎和它還滿像的

其實只是想問,有沒有人也學過J這樣


學過的人感覺如何?

--
※ 作者: gary8520 時間: 2011-10-14 14:19:17
※ 編輯: gary8520 時間: 2011-10-14 14:26:50
※ 看板: Programming 文章推薦值: 1 目前人氣: 0 累積人氣: 2081 
分享網址: 複製 已複製
1樓 時間: 2011-10-14 17:39:34 (台灣)
  10-14 17:39 TW
看到的第一反應也是覺得像R語言 都沒學過XD
2樓 時間: 2011-10-14 19:40:59 (台灣)
  10-14 19:40 TW
噗  什麼時候多了一個R語言
3樓 時間: 2011-10-14 22:46:48 (台灣)
  10-14 22:46 TW
R語言通常是經濟財經會計統計在用的
4樓 時間: 2011-10-15 01:20:39 (台灣)
  10-15 01:20 TW
果然是冷門語言(似乎專業一點是APL語言很少人用,因為太難懂了?)←參考WIKIPEDIA
5樓 時間: 2011-10-15 08:08:48 (台灣)
  10-15 08:08 TW
從資工往外跨學門很少 跨進資工卻很簡單 所以才會有這種很難懂的語言出現阿......
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇
看板名稱: 確定(Enter) 取消(Esc) 搜尋(Space)
查詢帳號: 確定(Enter) 取消(Esc) 搜尋(Space)
搜尋: m)m文 b)進板 c)未分類 a)作者 /)標題 q)取消?[q]

搜尋 送出(Enter) 取消(Esc)

回覆文章至: f)看板 m)作者信箱 b)兩者皆是 q)取消?[f]
要引用原文嗎? y)引用原文 n)不引用 a)全部回覆 r)複製原文 q)取消?[y]
轉錄本文章於看板: 1)使用連結 2)使用複製 q)取消 ?[1]
轉寄至站內信箱於使用者: 確定(Enter) 取消(Esc)
轉寄至站內信箱於使用者: 確定(Enter) 取消(Esc)
修改文章標題為: 確定(Enter) 取消(Esc)
修改文章標題為: 確定(Enter) 取消(Esc) 全部(a)

確定要刪除這篇文章?(可按大U救回) 確定(Enter) 取消(Esc)

刪除理由:

確定(Enter) 取消(Esc)
加到這個分類: 確定(Enter) 下一層(→) 回上層(←) 取消(Esc)
你覺得這篇文章: 1)真讚 2)真瞎 q)取消?[1] (再選一次即可收回)
你覺得這篇文章: 1)值得推薦 2)表示反對 3)單純註解 q)取消?[3]
guest
預覽(Enter) 取消(Esc)
上傳圖片
按ctrl+Enter可輸入下一行。
guest
確定要送出? 確定(Enter) 取消(Esc) 繼續(e)
搜尋: 送出(Enter) 取消(Esc)

▏▎▍▌▋▊▉ 請按任意鍵繼續