Я думаю, что ?@:$
- это то, что вы ищете
3 5 ?@:$ 0
0.031974 0.272734 0.792653 0.439747 0.136448
0.332198 0.00904103 0.7896 0.78304 0.682833
0.27289 0.855249 0.0922516 0.185466 0.257876
Общая структура для этого x u@:v y <-> (u (x v y))
, где u и v - глаголы, а аргументы - x и y.
Надеюсь, это поможет.
Перечитывая ваш вопрос, похоже, что вы хотите, чтобы форма основывалась на количестве элементов в аргументах. Здесь я бы использовал #
для подсчета элементов в каждом аргументе, затем использовал ,
, чтобы создать левый аргумент для $&0
и применить ?
к результату.
3 4 5 (?@:($&0 @:,))&# 5 3 3 4 5
0.179395 0.456545 0.805514 0.471521 0.0967092
0.942029 0.30713 0.228288 0.693909 0.338689
0.632752 0.618275 0.100224 0.959804 0.517927
Это ближе к тому, что вы имели в виду?
И, как часто случалось, я думал о другом подходе в одночасье
3 4 5 ?@0:"0/ 1 2 3 4 5
0.271366 0.291846 0.0493541 0.72488 0.47988
0.50287 0.980205 0.58541 0.778901 0.0755205
0.0114588 0.523955 0.535905 0.5333 0.984908