Skip to main content

[scheme] car, cdr và cons

car, cdrcons là 3 primitive của scheme

Từ mới, bạn CHƯA cần phải cố hiểu chúng, cứ đọc nó như một từ mới thôi:
  • car
  • cdr
  • cons
  • primitive
  • S-expression


Hãy mở #guile lên và gõ vào rồi sẽ hiểu:
CHÚ Ý: dấu single quote trước (1.

scheme@(guile-user)> (define li '(1 2 3 4 5))
scheme@(guile-user)> (car li)
$8 = 1

scheme@(guile-user)> (cdr li)
$9 = (2 3 4 5)
scheme@(guile-user)> (car (cdr li))
$10 = 2
scheme@(guile-user)> (cons 0 li)
$11 = (0 1 2 3 4 5)
scheme@(guile-user)> (cons 0 ())
While compiling expression:
ERROR: Syntax error:
unknown location: unexpected syntax in form ()
scheme@(guile-user)> (define el ())
While compiling expression:
ERROR: Syntax error:
unknown location: unexpected syntax in form ()
scheme@(guile-user)> (define el '())
scheme@(guile-user)> (cons 'conma el)
$12 = (conma)

(define li '(1 2 3 4 5)) định nghĩa  variable li có giá trị là một list (1 2 3 4 5)

car nhận đầu vào là 1 non-empty list và trả về S-expression đầu tiên trong list đó.
cdr nhận đầu vào là 1 non-empty list và trả về list đó trừ phần tử đầu tiên.

cons lấy 2 argument, argument đầu tiên là một S-expression bất kỳ,
argument thứ 2 là một list bất kỳ. cons sẽ thêm argument thư nhất vào  đầu list arugment thứ 2.

Hãy luyện tập để quen với car, cdr và cons
những điều thú vị sẽ đến vào phần sau...
scheme@(guile-user)> (car (cdr (cdr '(tao (xoai) (cam mit oi)))))
$13 = (cam mit oi)

Comments

Popular posts from this blog

Tài liệu và hướng dẫn học Python

Để tiết kiệm thời gian, tốt nhất là đi học PyMI Updated: 130617 Sau đây là các tài liệu khuyên dùng: Vì nhiều lý do, nên học python2.7 tại thời điểm hiện tại (giờ là tháng 6/2013 - muốn biết tại sao thì tự tìm hiểu) python 3.5+ (giờ là tháng 2/2017) Chuẩn bị: 1. biết bật tắt máy 2. biết cài python 3. tập gõ 10 ngón - gõ 2 ngón hay 1 ngón cũng không sao, nhưng 10 ngón là cách dễ nhất để gõ nhanh nhất. Tài liệu - Nên dùng tài liệu tại trang chủ của Python làm chính, tham khảo thêm các tài liệu khác tại http://www.familug.org/2016/12/free-ebook.html Căn bản, mới học 1.1 Python PyMI.vn https://pymi.vn/tutorial/ 1.2. Python offical tutorial kết hợp làm bài tập trên HackerRank  (đề bài bằng tiếng Anh, nhưng Google translate 1 lúc cũng ra vì có nhiều ví dụ mẫu đi kèm). Học viên của Pymi.vn có rất nhiều học viên đã tự học với Learn Python the hard way nhưng chưa thấy ai thành công cả. Hai link dưới nên đọc sau khi đã nắm được những phần cơ bản của ngôn ngữ pytho...

The PyMiers

New FAMILUG