簡體   English   中英

使用函數式編程范例遍歷鏈表

[英]Iterating over Linked List using Functional programming paradigm

我的項目中有一個簡單的鏈接列表。 該項目使用underscore.js。 我正在嘗試一種使用函數式編程技術遍歷鏈表的方法。 目前,我有以下內容:

while(cell.next) {
  nxt = cell.next;
  //check if next cell fulfills some condition. If condition is met,
  // loop breaks
}

有什么辦法可以以功能方式實現上述功能(使用underscore.js庫)?

提前致謝。

不確定下划線是如何考慮的。獲取功能樣式代碼似乎並不是必需的。

function doCell(c) {
    if (!c || your_condition_is_met)
        return c;
    return doCell(c.next);
}

var result = doCell(cell);

不知道結果應該是什么,所以如果滿足條件,我就返回當前單元格。


如果願意,可以將其中的一些抽象為可重用的函數。

function nextWhile(v, callback) {
    if (!v || callback(v))
        return v;
    return nextWhile(v.next, callback);
}

然后像這樣使用它:

var result = nextWhile(cell, function(cell) {
    return your_condition_is_met;
});

這使您可以創建可重用的函數。

function cell_is_something(cell) {
    return your_condition_is_met;
}

清理並記錄您的代碼。

var result = nextWhile(cell, cell_is_something);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM