تابع '''{{lisp2|cons}}''' (با تلفظ ({{IPAc-en|ˈ|k|ɒ|n|z}} orیا {{IPAc-en|ˈ|k|ɒ|n|s}}) در [[برنامهنویسی رایانهای]]، یک [[رویه (علوم رایانه)|تابع]] بنیادین در بیشتر گویشهای [[لیسپ|زبان برنامهنویسی لیسپ]] است. لغت {{lisp2|cons}} از واژه '''con'''struct گرفته شدهاست و اشیای حافظهای را میسازد که «'''دو'''» "مقدار" یا "اشارهگر به مقدار" را نگهداری میکند. به این اشیاء، سلول cons یا conses یا [[عبارت-s]] غیراتمی ("NATSes") یا [[زوج مرتب|زوج]] cons گفته میشود. در اصطلاحات فنی لیسپ، عبارت "to cons ''x'' onto ''y''" به معنی ساخت یک شیء جدید با دستور <code>(cons ''x'' ''y'')</code> است. جفت به دست آمده یکنیمه سمت چپ دارد که به آن [[CAR و CDR|{{lisp2|car}}]] گفته میشود (عنصر اول، یا محتوای [[:en:IBM_704#Instruction_and_data_formats|قسمت آدرس ثبات]]) و نیز یک نیمه سمت راست دارد (عنصر دوم، یا محتوای [[:en:IBM_704#Instruction_and_data_formats|قسمت کاهشی ثبات]]) که به آن [[CAR و CDR|{{lisp2|cdr}}]]<nowiki/>گفته میشود.
این مفهوم به صورت سست به مفهوم [[برنامهنویسی شیءگرا|شیءگرای]] [[سازنده (برنامهنویسی شیءگرا)|سازنده]] مرتبط است، که در آن یک شیء جدید را پس از فرستادن آرگومانها میسازد، و به صورت نزدیکتر با تابع سازنده یک سامانه [[نوع داده جبری]] مرتبط است.