Sha256: 3f184a3fd939e23a8c01ec5d92cfdfdd4a10c507103519db54595052f6997723

Contents?: true

Size: 700 Bytes

Versions: 84

Compression:

Stored size: 700 Bytes

Contents

-module('largest_series_product').

-export([lsp/2]).

-define(is_digit(C), ((C >= $0) and (C =< $9))).

lsp(_String, N) when N < 0 -> error;
lsp(String, N) -> lsp(erlang:length(String), String, N).



lsp(Length, _String, N) when Length < N -> error;
lsp(Length, String, N) ->
  Sets = sets(Length, N, String),
  lists:max([product(X) || X <- Sets]).

product(Set) -> lists:foldl(fun product/2, 1, Set).

product(_C, error) -> error;
product(C, _Acc) when not ?is_digit(C) -> error;
product(C, Acc) -> (C - $0) * Acc.

sets(Length, Width, [_ | T] = String) when Length > Width ->
  Set = lists:sublist(String, Width),
  [Set | sets(Length - 1, Width, T)];
sets(_Length, _Width, String) -> [String].

Version data entries

84 entries across 84 versions & 1 rubygems

Version Path
trackler-2.0.6.28 tracks/erlang/exercises/largest-series-product/example.erl
trackler-2.0.6.27 tracks/erlang/exercises/largest-series-product/example.erl
trackler-2.0.6.26 tracks/erlang/exercises/largest-series-product/example.erl
trackler-2.0.6.25 tracks/erlang/exercises/largest-series-product/example.erl
trackler-2.0.6.24 tracks/erlang/exercises/largest-series-product/example.erl
trackler-2.0.6.23 tracks/erlang/exercises/largest-series-product/example.erl
trackler-2.0.6.22 tracks/erlang/exercises/largest-series-product/example.erl
trackler-2.0.6.21 tracks/erlang/exercises/largest-series-product/example.erl
trackler-2.0.6.20 tracks/erlang/exercises/largest-series-product/example.erl
trackler-2.0.6.19 tracks/erlang/exercises/largest-series-product/example.erl
trackler-2.0.6.18 tracks/erlang/exercises/largest-series-product/example.erl
trackler-2.0.6.17 tracks/erlang/exercises/largest-series-product/example.erl
trackler-2.0.6.16 tracks/erlang/exercises/largest-series-product/example.erl
trackler-2.0.6.15 tracks/erlang/exercises/largest-series-product/example.erl
trackler-2.0.6.14 tracks/erlang/exercises/largest-series-product/example.erl
trackler-2.0.6.13 tracks/erlang/exercises/largest-series-product/example.erl
trackler-2.0.6.12 tracks/erlang/exercises/largest-series-product/example.erl
trackler-2.0.6.11 tracks/erlang/exercises/largest-series-product/example.erl
trackler-2.0.6.10 tracks/erlang/exercises/largest-series-product/example.erl
trackler-2.0.6.9 tracks/erlang/exercises/largest-series-product/example.erl