Talk:Search a list of records: Difference between revisions

Content added Content deleted
Line 23: Line 23:
:* A search which returns an index, and a search which return a value.
:* A search which returns an index, and a search which return a value.


(As a footnote on apparent divergence and hidden convergence, Haskell, at first sight, doesn't use heterogenous lists, but it does use homogenous lists of compound data types. JavaScript appears to have heterogenous list of elements, which might include a mixture of reals, strings, functions, and objects, but in fact these are all JS objects, some atomic on the surface but in all compound below the water-line, each with a type/Constructor as well as a value. Searching for an item will always involve a function which derives a type-dependent value and applies a particular type of equality check, often involving some kind of reduction, normalisation or coercion.
(As a footnote on apparent divergence and hidden convergence, Haskell, at first sight, doesn't use heterogenous lists, but it does use homogenous lists of compound data types. JavaScript appears to have heterogenous list of elements, which might include a mixture of reals, strings, functions, and objects, but in fact these are all JS objects, some atomic on the surface but all, in fact, compound below the water-line, each with a type/Constructor as well as a value. Searching for an item will always involve a function which derives a type-dependent value and applies a particular type of equality check, often involving some kind of reduction, normalisation or coercion.


Search also varies with evaluation strategy – if one element of a list is a function call, in some languages that call will be eagerly reduced/evaluated before the search equality function is applied. In others, such as JavaScript, an .indexOf search will '''not''' match a string like "epsilon" with a potentially equivalent function call like (function () {return "epsilon"})()
Search also varies with evaluation strategy – if one element of a list is a function call, in some languages that call will be eagerly reduced/evaluated before the search equality function is applied. In others, such as JavaScript, an .indexOf search will '''not''' match a string like "epsilon" with a potentially equivalent function call like (function () {return "epsilon"})()
It might be helpful to specify requirements which drew these things out and made them visible.
It might be helpful to specify requirements which drew these things out and made them visible. [[User:Hout|Hout]] ([[User talk:Hout|talk]]) 13:13, 10 October 2015 (UTC)