Xin giúp dịch đoạn văn bản tiếng anh
Em đang đọc sách PHP CookBook nhưng khi đọc tới đoạn này thì chưa hiểu ý của tác giả,mọi người có thể giúp em được không ạ:
"
Starting with PHP 5.5, you can use a generator to operate on a series. A generator is a
function that, instead of calling return to return a value, calls yield (perhaps within a
loop). Then a call to that function can be used where you’d otherwise use an array, and
you operate on the series of values passed to the yield keyword. For example, here’s
how to use a generator to produce a list of squares:Code:
function squares($start, $stop)
{
if ($start < $stop) {
for ($i = $start; $i <= $stop; $i++) {
yield $i => $i * $i;
}
}
else {
for ($i = $stop; $i >= $start; $i–) {
yield $i => $i * $i;
}
}
}
foreach (squares(3, 15) as $n => $square) {
printf("%d squared is %d ", $n, $square);
}PHP keeps calling the squares() function as long as it calls yield. The key and value
passed to yield can be used in the foreach just like a regular array element.
Generators are handy because you can have arbitrary behavior to create each value
(whatever you put inside your function) but the values are generated on demand. You
don’t have to commit the memory (or processing) to create the whole array first, as with
range(), before you start operating on it."
Em xin chân thành cảm ơn
Bạn có thể tìm hiểu về từ khoá Generator trong PHP, sẽ ra khá nhiều kết quả bằng tiếng việt
http://php.net/manual/en/language.generators.overview.php
Đại khái thằng yield này sẽ trả về kết quả không khác return là mấy, nó sẽ liên tục đẩy ra kết quả cho tới khi hết vòng lặp, khi dùng trong foreach nó sẽ chạy như mảng, tuy nhiên nó có lợi hơn return là PHP sẽ không giữ lại giá trị của kết quả đó trong bộ nhớ mà sẽ bỏ qua luôn, vậy nên sẽ giải quyết những mảng lớn tới vài tỉ cũng không sao, rất phù hợp khi dùng với lambda/closure
Thực sự thì cái này cần cả
kiến thức
nữa chứ không chỉ đơn thuần làdịch
. Với lại với những khái niệm mới mình khuyên bạn nên search tài liệu bằng tiếng việt nữa, những thứ gọi làkhái niệm
thì thường không khó kiếm tài liệu.Bạn tìm hiểu về
generator
vàyield
trongprograming
. Khái niệm này trong python, javascript đều có, bạn đọc thêm ví dụ, làm thêm thực hành cho nắm được nguyên lý. Đang họcphp
thì sẽ bắt đầu từphp
rồi đọc sang các ngôn ngữ khác.Đôi lúc cần học ngược từ ngọn xuống, làm ví dụ rồi đọc lại lý thuyết.
Cảm ơn bạn đã chia sẻ kinh nghiệm,mình sẽ tìm hiểu lại
cảm ơn bạn đã chia sẽ,mình sẽ tìm hiểu lại
Tiện thế, bạn cho mình ké với.
Ai giúp mình dịch đoạn này sang tiếng anh với
Nguồn: https://archive.ics.uci.edu/ml/datasets/Cylinder+Bands
Tức là thay vì phải cài luật suy diễn như thuở sơ khai thì bây giờ cho máy tạo luôn luật ấy cho chuyên gia xem, vì lên đến hàng đó thì thường kiến thức là ko thành văn (implicit/tacit) rồi.