Skip to main content

Posts

Showing posts with the label scheme

In ra màn hình số 1 - dùng ngôn ngữ nào nhanh/nhẹ nhất?

Nếu chỉ cần in ra mà hình số 1, ngôn ngữ lập trình nào sẽ chạy tốn ít RAM nhất? Thí nghiệm sau sẽ cho ta thấy các chương trình cần bao nhiêu RAM để chạy và in ra số 1, kết thúc dòng bằng một dấu xuống dòng (newline \n ). Ta dùng chương trình /usr/bin/time để có cả thông số về RAM ( RSS ) thay vì chỉ gõ time - lệnh builtin của bash. bash4.3 $ /usr/bin/time bash -c 'echo 1' 1 0 .00user 0 .00system 0 :00.00elapsed 100 %CPU ( 0avgtext+0avgdata 3064maxresident ) k 0inputs+0outputs ( 0major+136minor ) pagefaults 0swaps dash $ /usr/bin/time /bin/dash -c 'echo 1' 1 0 .00user 0 .00system 0 :00.00elapsed ?%CPU ( 0avgtext+0avgdata 1492maxresident ) k 0inputs+0outputs ( 0major+67minor ) pagefaults 0swaps mawk $ /usr/bin/time mawk 'BEGIN {print 1}' 1 0 .00user 0 .00system 0 :00.00elapsed 100 %CPU ( 0avgtext+0avgdata 1932maxresident ) k 0inputs+0outputs ( 0major+86minor ) pagefaults 0swaps

[Ebook] Tài liệu học lập trình miễn phí

 Tiêu chí: - Miễn phí - Chất - Nhóm theo ngôn ngữ. Bash 🤓 - LinuxCommand - ABS (Advanced Bash Scripting) Python 😘 - hướng dẫn Python Tiếng Việt - Tutorial - Dive into Python - The Hitchhiker’s Guide to Python! - Automate the Boring Stuff with Python - Invent Your Own Computer Games with Python - Hacking Secret Ciphers with Python - How to Think Like a Computer Scientist - SICP Python version - Learn Python the hard way - More ebooks:  http://pythonbooks.org/free-books/ Ruby 🙄 - Poignant Ruby - Learn Ruby the hard way   Haskell 😏 - Learn You a Haskell - Real world Haskell   C - Modern C

[Programming] Closure

Closure /ˈkləʊʒə/ sự đóng kín (Việt sub: cờ lâu giơ) Là một khái niệm phổ biến ở các ngôn ngữ lập trình hàm ( functional programming language như LISP, Scheme, ...) nhưng cũng có thể thấy ở Javascript,Ruby, Go, Object C, hay hỗ trợ 1 phần ở python2 và hỗ trợ hoàn toàn ở python3... (nhưng không có trong C, Java). Các ngôn ngữ nào cho phép trả về giá trị là một function thì có thể sẽ hỗ trợ closure. Để tránh sử dụng wikipedia, sau đây là các định nghĩa closure từ document chính thức của một số ngôn ngữ lập trình: Go đưa ra khái niệm ở dạng mô tả như sau trong gotour : Một closure là một function (hàm) mà reference (tham chiếu) đến các biến ở ngoài body của nó. Function này có thể truy cập và thay đổi các biến mà nó đã reference. Có thể nói function "bound"(đã gắn) đến các biến. EMACS LISP : Một closure là function mà nó "mang theo" một bản ghi về "môi trường lexical" đã tồn tại khi hàm đó được định nghĩa. Javascript : Closure là function...

[scheme] define, lambda, cond

Với  car, cdr, cons , ở bài trước ta đã có thể làm rất nhiều thứ với Scheme, bài này sẽ giới thiệu cú pháp của "define", "lambda" và "cond", để bạn có thể thỏa sức tưởng tượng với function. "define" để gán một cái tên cho một "object". Ví dụ: scheme@(guile-user)> (define lat '(ga bo heo)) Gán cho "list" '(ga bo heo) cái tên là lat (viết tắt của : list of atoms) Hãy chơi lại với car, cdr, cons scheme@(guile-user)> (car lat) $2 = ga scheme@(guile-user)> (cdr lat) $3 = (bo heo) scheme@(guile-user)> (cons (car lat) (cdr lat)) $4 = (ga bo heo) "null?" là function để kiểm tra list đầu vào có phải là list rỗng không. scheme@(guile-user)> (null? lat)  $5 = #f scheme@(guile-user)> (null? '()) $6 = #t

[scheme] car, cdr và cons

car , cdr và cons 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] data type boolean

Loạt bài viết giúp học ngôn ngữ  Scheme, sử dụng Guile. Cố gắng để mọi thứ trở nên dễ hiểu, đơn giản nhất. Để làm theo bài tut này, bạn cần có Guile interpreter. Nếu bạn chưa biết cài và chạy Guile interpreter thế nào, xem ở đây Syntax của Guile không giống C/C++/Java/PHP/Python... nên bạn cứ làm theo là được => hiểu sau. Từ khóa - data type: kiểu dữ liệu - boolean: Tiếng Việt là gì nhỉ??? Bài này viết về data type boolean. Kiểu dữ liệu boolean (đôi khi viết tắt là bool) là kiểu dữ liệu đơn giản chỉ có 2 giá trị : đúng hoặc sai Trong Guile giá trị sai biểu diễn bằng #f giá trị đúng được biểu diễn bởi TẤT CẢ các thứ khác và #t Ví dụ

[scheme] Guile - giới thiệu và cài đặt

Guile là gì?  - Guile là viết tắt của cụm từ GNU Ubiquitous Intelligent Language for Extensions , là ngôn ngữ mở rộng (extension) chính thức cho GNU operating system . - Guile là một library. (Guile is a library designed to help programmers create flexible applications.) - Guile là một ngôn ngữ lập trình. - Guile is an interpreter and compiler for the Scheme programming language, a clean and elegant dialect of Lisp. - Guile is an efficient virtual machine that executes a portable instruction set generated by its optimizing compiler, and integrates very easily with C and C++ application code. ... Theo http://www.gnu.org/software/guile/guile.html Nói chung là, nếu bạn muốn học Scheme thì cài Guile, hết! Làm thế nào để học được cái này, trông khó hiểu quá? Shut up and just do it ! Cách đọc   guile /gʌɪl/ Cài đặt

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