تالار گفتمان مانشت

نسخه‌ی کامل: سوال طراحی و پیاده سازی ارشد 94
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام

از دوستان کسی میتونه جواب درست با راه حل کامل این سوال رو برام بنویسه؟

[attachment=19848]
cons دو ارگومان ورودی می گیرد و لیستی شامل ۲ ارگومان ورودی اش را بر می گرداند مثلا (cons 'a 'b) خروجی برابر (A . B) دارد.

car یک لیست به عنوان ورودی می گیرد و المان اول آن را برمی گرداند. مثلا: ((car '(a b c d e f) برابر A است.
cdr یک لیست به عنوان ورودی می گیرد و لیستی بدون المان اول را بر می گرداند. مثلا: ((cdr '(a b c d e f) برابر (B C D E F) می
شود.

rplacd دو ارگومان می گیرد و cdr ارگومان اول (همه عناصر ارگومان اول به جز عنصر اول) را با ارگومان دوم جایگزین می کند.

طبق این تعاریف خروجی خط دوم : (۳ ۲ (۳ ۲ ۱)) می شود.
و خط سوم: (۳ ۲ (۵ ۱)) که برابر با گزینه دوم سوال است.
(05 اردیبهشت 1395 04:08 ب.ظ)miladbar نوشته شده توسط: [ -> ]cons دو ارگومان ورودی می گیرد و لیستی شامل ۲ ارگومان ورودی اش را بر می گرداند مثلا (cons 'a 'b) خروجی برابر (A . B) دارد.

car یک لیست به عنوان ورودی می گیرد و المان اول آن را برمی گرداند. مثلا: ((car '(a b c d e f) برابر A است.
cdr یک لیست به عنوان ورودی می گیرد و لیستی بدون المان اول را بر می گرداند. مثلا: ((cdr '(a b c d e f) برابر (B C D E F) می
شود.

rplacd دو ارگومان می گیرد و cdr ارگومان اول (همه عناصر ارگومان اول به جز عنصر اول) را با ارگومان دوم جایگزین می کند.

طبق این تعاریف خروجی خط دوم : (۳ ۲ (۳ ۲ ۱)) می شود.
و خط سوم: (۳ ۲ (۵ ۱)) که برابر با گزینه دوم سوال است.


خیلی ممنون ...
سلام دوستان
در لیسپ دستورات موازی انجام میشه؟
چون در غیر این صورت نباید تغییر a تاثیری در b میگذاشت. و یا باید دستور خط دوم بعد دستور خط سوم میومد که این تغییر صورت میگرفت.
ممنون میشم سریع تر جواب بدین
(15 اردیبهشت 1395 08:03 ب.ظ)as.mousavi نوشته شده توسط: [ -> ]سلام دوستان
در لیسپ دستورات موازی انجام میشه؟
چون در غیر این صورت نباید تغییر a تاثیری در b میگذاشت. و یا باید دستور خط دوم بعد دستور خط سوم میومد که این تغییر صورت میگرفت.
ممنون میشم سریع تر جواب بدین
خیر موازی انجام نمیشن.به ترتیب.دلیلش ساختار لیست ها در زبان Lisp هستش.
در زبان Lisp، هر لیست از دو بخش آدرس و کاهش تشکیل شده.
فیلد آدرس،که همان عنصر اول لیست هستش،(که با Car بدست میاد) یک اشاره گر به لیست دیگه ای است.
و فیلد کاهش که همان عناصر غیر اول لیست هستش(که با Cdr بدست میاد)،یک اشاره گر به به یک لیست دیگه ای است.
یعنی یک لیست با اشاره گر ها درست شده.اگه به ترتیب با این توضیحاتی که گفتم،سوال رو حل کنید،میبینید که هیچ تناقضی وجود نداره.
(16 اردیبهشت 1395 07:47 ق.ظ)IranianWizard نوشته شده توسط: [ -> ]
(15 اردیبهشت 1395 08:03 ب.ظ)as.mousavi نوشته شده توسط: [ -> ]سلام دوستان
در لیسپ دستورات موازی انجام میشه؟
چون در غیر این صورت نباید تغییر a تاثیری در b میگذاشت. و یا باید دستور خط دوم بعد دستور خط سوم میومد که این تغییر صورت میگرفت.
ممنون میشم سریع تر جواب بدین
خیر موازی انجام نمیشن.به ترتیب.دلیلش ساختار لیست ها در زبان Lisp هستش.
در زبان Lisp، هر لیست از دو بخش آدرس و کاهش تشکیل شده.
فیلد آدرس،که همان عنصر اول لیست هستش،(که با Car بدست میاد) یک اشاره گر به لیست دیگه ای است.
و فیلد کاهش که همان عناصر غیر اول لیست هستش(که با Cdr بدست میاد)،یک اشاره گر به به یک لیست دیگه ای است.
یعنی یک لیست با اشاره گر ها درست شده.اگه به ترتیب با این توضیحاتی که گفتم،سوال رو حل کنید،میبینید که هیچ تناقضی وجود نداره.

درسته..ممنون
لینک مرجع