import { curry } from '@typed/lambda'
import { equals } from '@typed/logic'
import { slice } from '../slice'
/**
* Returns true if a list ends with a given set of values otherwise false.
* @param expected :: [a]
* @param list :: [a]
* @returns :: boolean
*/
export const endsWith = curry((expected: ReadonlyArray, list: ArrayLike) =>
equals(expected, slice(list.length - expected.length, list.length, list)),
) as {
(expected: ReadonlyArray, list: ArrayLike): boolean
(expected: ReadonlyArray): (list: ArrayLike) => boolean
}