PDA

View Full Version : سوال: آرگومان تابع خودش از نوع تابع !!!



hasan_azad
جمعه 05 آبان 1391, 12:53 عصر
با سلام به دوستان !
یه سوالی داشتم ولی نمیدونستم که دقیقاً کجای انجمن باید مطرحش کنم
مدیر انجمن خودش منتقل کنه بی زحمت !

می خواستم بدونم
در چه زبانهایی آرگومان تابع میتونه خودش از نوع تابع باشه؟

هرکی تو هر زبانی که کار کرده و خبر داره بگه !

ممنون

shahmohammadi
جمعه 05 آبان 1391, 13:39 عصر
سلام.
در زبان اسمبلي چون با آدرس توابع كار مي‌كنيم مي تونيم به عنوان آرگومان بديم.
در زبان سي هم كه خيلي به اين زبان نزديك هست، مي تونيم نام تابع رو كه برابر با آدرس تابع هست، مي تونيم به عنوان آرگومان به تابع ديگه بديم.
نمونه‌ي كاربردش هم توي win32 (با سي يا اسمبلي) براي تابع windowproc هست.

hadi0x7c7
جمعه 05 آبان 1391, 15:25 عصر
توی زبان Go هم یادمه توابع از نوع func بودن و میشد به تابع پاس داد.

اینم یه نمونه:
package main

import "fmt"

func myFunction() {
fmt.Println("Hi every body!")
}

func secondFunction(a func()) {
a()
}

func main() {
secondFunction(myFunction)
}

مسعود اقدسی فام
جمعه 05 آبان 1391, 15:57 عصر
با سلام به دوستان !
یه سوالی داشتم ولی نمیدونستم که دقیقاً کجای انجمن باید مطرحش کنم
مدیر انجمن خودش منتقل کنه بی زحمت !

می خواستم بدونم
در چه زبانهایی آرگومان تابع میتونه خودش از نوع تابع باشه؟

هرکی تو هر زبانی که کار کرده و خبر داره بگه !

ممنون

در C و ++C هم می‌شه تابع رو ارسال کرد. البته آدرس شروع تابع با عملگر & ارسال می‌شه و اون سمت هم با فرمت تعریف شده تابع با آدرسش فراخوانی می‌شه.

این صفحه یه نمونه هست:


http://www.algorithmha.ir/post-%D8%A7%D8%B4%D8%A%D8%A7%D8%B3.aspx (http://www.algorithmha.ir/post-%D8%A7%D8%B4%D8%A7%D8%B1%D9%87-%DA%AF%D8%B1-%D8%AF%D8%B1-%D8%B3%DB%8C-%D9%BE%D9%84%D8%A7%D8%B3-%D9%BE%D9%84%D8%A7%D8%B3.aspx)

IamOverlord
جمعه 05 آبان 1391, 19:08 عصر
حتی در VB هم این امکان هست...
در کل باید این امکان باشه که آدرس تابع رو با یه چیزی مثل AddressOf به دست بیاری و یه جای دیگه هم تابع رو Call کنی...
که اصطلاحا در CallBack کردن توابع کاربرد داره مثلا در توابع مربوط به Event ها...

hasan_azad
جمعه 05 آبان 1391, 21:38 عصر
با تشکر از دوستانی که جواب دادن !
میخواستم بدونم که در مورد زبان هایی مثل java، Javascript, PHP,Python, Ruby, Perl, حتی C# چطوری هست؟
یعنی این زبان ها هم می توانند آرگومان از نوع تابع بگیرند؟
ممنون