با استفاده از هوش مصنوعی، CoffeeScript را به Perl تبدیل کنید

ترجمه کد منبع به منبع از CoffeeScript با استفاده از هوش مصنوعی شامل استفاده از تکنیک‌های پردازش زبان طبیعی (NLP) و الگوریتم‌های یادگیری ماشین برای تجزیه و تحلیل و درک کد منبع است.

اکشن‌اسکریپت

FAQ

چالش‌های ترجمه

توضیحات مشکل مثال نحوی CoffeeScript مثال نحوی Perl امتیاز (۱-۱۰)
تعریف توابع square = (x) -> x * x sub square { my $x = shift; return $x * $x; } ۶
درک لیست [x * 2 for x in [1..5]] my @list = map { $_ * 2 } (1..5); ۷
بازگشت ضمنی double = (x) -> x * 2 sub double { return $_[0] * 2; } ۵
تعریف کلاس class Animal package Animal; ۸
اپراتور اسپلات args = (1, 2, 3) my @args = (1, 2, 3); ۴
درون‌ریزی رشته "Hello, #{name}" "Hello, $name" ۳
توابع پیکانی add = (a, b) -> a + b sub add { return $_[0] + $_[1]; } ۶
پارامترهای پیش‌فرض greet = (name = "World") -> "Hello, #{name}" sub greet { my $name = shift // "World"; return "Hello, $name"; } ۵

تعریف توابع

در CoffeeScript، توابع می‌توانند با استفاده از یک نحوی مختصر تعریف شوند. به عنوان مثال:

square = (x) -> x * x

در Perl، تعریف معادل تابع بیشتر توضیحی است:

sub square {
    my $x = shift;
    return $x * $x;
}

منبع: توابع CoffeeScript | زیرروال‌های Perl

درک لیست

CoffeeScript اجازه می‌دهد تا درک لیست به روشی بسیار خوانا انجام شود:

[x * 2 for x in [1..5]]

در Perl، این می‌تواند با استفاده از تابع map به دست آید:

my @list = map { $_ * 2 } (1..5);

منبع: درک لیست CoffeeScript | تابع map Perl

بازگشت ضمنی

CoffeeScript از بازگشت ضمنی پشتیبانی می‌کند و کد را تمیزتر می‌کند:

double = (x) -> x * 2

در Perl، شما باید به طور صریح از return استفاده کنید:

sub double {
    return $_[0] * 2;
}

منبع: بازگشت ضمنی CoffeeScript | بیانیه بازگشت Perl

تعریف کلاس

تعریف کلاس‌ها در CoffeeScript ساده است:

class Animal

در Perl، شما باید یک بسته را اعلام کنید:

package Animal;

منبع: کلاس‌ها CoffeeScript | بسته‌ها Perl

اپراتور اسپلات

CoffeeScript از اپراتور اسپلات برای مدیریت آرگومان‌های متغیر استفاده می‌کند:

args = (1, 2, 3)

در Perl، شما معمولاً از یک آرایه استفاده می‌کنید:

my @args = (1, 2, 3);

منبع: اپراتور اسپلات CoffeeScript | آرایه‌ها Perl

درون‌ریزی رشته

CoffeeScript اجازه می‌دهد تا درون‌ریزی رشته با استفاده از #{} انجام شود:

"Hello, #{name}"

در Perl، شما می‌توانید نتایج مشابهی را با $ به دست آورید:

"Hello, $name"

منبع: درون‌ریزی رشته CoffeeScript | درون‌ریزی رشته Perl

توابع پیکانی

توابع پیکانی CoffeeScript یک نحوی مختصر را ارائه می‌دهند:

add = (a, b) -> a + b

در Perl، شما آن را به صورت زیر تعریف می‌کنید:

sub add {
    return $_[0] + $_[1];
}

منبع: توابع پیکانی CoffeeScript | زیرروال‌های Perl

پارامترهای پیش‌فرض

CoffeeScript به راحتی اجازه می‌دهد تا پارامترهای پیش‌فرض تعریف شوند:

greet = (name = "World") -> "Hello, #{name}"

در Perl، شما می‌توانید این را با استفاده از اپراتور // به دست آورید:

sub greet {
    my $name = shift // "World";
    return "Hello, $name";
}

منبع: پارامترهای پیش‌فرض CoffeeScript | مقادیر پیش‌فرض Perl