有人使用 JSL 進行函數式程式設計嗎?有人使用函數式程式編寫 JSL 嗎?如果有,您是否有使用的一組標準函數?
例如,下面的簡化映射函數完成了 for 循環的所有工作,因此您只需指定一個表達式和一個列表,該函數就會傳回一個列表,其中包含對每個元素進行計算的函數。 在 R 中,可以在套件中找到類似的函數及其變體'咕嚕'作者:萊昂內爾·亨利和哈德利·威克姆。
// A function to evaluate an expression for each item in a list
//
// x__ A list
// fn__ An expression containing ___ (three underscores) that
// is replaced with each element of x__
//
// Returns a list the same length as x__.
//
map = function( {x__, fn__},
r__ = {};
for(i__ = 1, i__ <= N items( x__ ), i__++,
r__ = Insert( r__, Eval( substitute(Name Expr( fn__ ), Expr(___), Expr( x__[i__] ) ) ) );
);
return(r__);
);
//Data to evaluate
vals = { 1, 2, 3, -3, -2, 0.5, -1.1, 5.3, 2.7, 0 };
//number of entries above zero
map( vals, Expr( ___ > 0 ) );
//sum of fractional parts
sum( map( vals, Expr( Mod( ___, 1 ) ) ) );
回覆:有人使用 JSL 進行函數式程式設計嗎?非常感謝 :)
改造每一個。
回覆:有人使用 JSL 進行函數式程式設計嗎?JMP 16 中引入了三個函數,可以透過本機函數來實現此目的。 它們感覺與其他語言不同,但同樣「功能性」(嘲笑我自己的雙關語):
For Each() //Do something for each member - similar to apply
Transform Each() //Calculate something for each member - similar to map
Filter Each() //Return members for which a condition is true - similar to filter
在此說明文件中查找有關這些函數的更多資訊:
https://www.jmp.com/support/help/en/17.1/index.shtml#page/jmp/conditional-and-logic-functions.shtml#ww10169888
回覆:有人使用 JSL 進行函數式程式設計嗎?同時,有沒有一個地圖函數現在可以直接在 Jmp 中使用嗎?
太有用了!
https://reference.wolfram.com/language/ref/Map.html
回覆:有人使用 JSL 進行函數式程式設計嗎?我需要花一些時間使用您的庫,因為這些功能的工作方式與我習慣的有點不同,但這很棒,感謝您的分享!毫無疑問,你節省了我很多時間!
回覆:有人使用 JSL 進行函數式程式設計嗎?有趣的是你問的,幾個月前我已經實現了類似的東西,當時認為它可能對其他人有用。 我剛剛在這裡發布: https://community.jmp.com/t5/JMP-Scripts/MFR-a-Functional-Programming-Library-for-JSL/ta-p/47803
希望對你有幫助。
順便說一句,我更喜歡使用匿名函數而不是表達式,儘管我必須根據我試圖解決的問題在它們之間切換。
回覆:有人使用 JSL 進行函數式程式設計嗎?儲存的 if 函數有點作弊,這就是為什麼我把它列在第二位的原因。 此函數解析列表以產生 if 語句,然後將該 JSL 寫入文件,然後將其包含在程式中。
我嘗試了一個動態創建 if 語句的函數,但性能受到很大影響,而且我意識到程式碼非常靜態,因此更容易儲存生成的 if 函數然後使用它。回覆:有人使用 JSL 進行函數式程式設計嗎?如何將要計算的程式碼傳遞給儲存的 if 函數?今天我同時使用表達式或函數,但我計劃今後將一組標準化。
評估另一個函數的範例映射函數:
map = function( {x, fn},
r = {};
for(i = 1, i <= N items( x ), i++,
r = Insert( r, fn( x[i] ) );
);
return(r);
);
//Anonymous function
map({1, 2, 3}, function({n}, n/2));
//Named function
foo = function( {v}, v * 2 );
map({1, 2, 3}, Expr( foo ) );回覆:有人使用 JSL 進行函數式程式設計嗎?我已經使用了這種方法,並且具有從資料表生成動態日誌、將表轉換為嵌套列表並再次轉換回來以及生成 UI 對話視窗的功能。
我還使用 JSL 來編寫我經常使用的複雜 if 函數(列出條件、true 時的狀態變更以及不再 true 時的狀態變更(可選)),因為我厭倦了調試我的拼字錯誤。