Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- lambda()
- {
- # Save orignal function
- local ORIGINAL=$(declare -f otl)
- local SHIFT_SIZE=${1}
- shift
- local vars=()
- for ((i=0;i<${SHIFT_SIZE};i++)); do
- vars+=(${1})
- shift
- done
- eval "otl() { $@; }"
- otl ${vars[@]}
- unset -f otl
- eval "${ORIGINAL}"
- }
- accept_lambda()
- {
- declare -a argAry1=("${!1}")
- echo "${argAry1[@]}"
- lambda ${argAry1[@]}
- }
- test_passing() {
- echo "Test passing lambda"
- local lamdef=(3 "test" "lambda" "pass" 'echo $3 $2 $1')
- echo "Passing ${lamdef[@]}"
- accept_lambda lamdef[@]
- }
- returns_callback(){
- lamdef=(3 test call back 'echo $3 $2 $1')
- echo "${lamdef[@]}"
- }
- test_callbacks(){
- echo "Test callback"
- local lamdef=($(returns_callback))
- echo "Got callback: ${lamdef[@]}"
- lambda ${lamdef[@]}
- }
- echo "Test lambda call"
- lambda 3 ro sham bo 'echo $3 $2 $1'
- test_passing
- test_callbacks
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement