Библиотека линейной алгебры для языка программирования D

Я предлагаю использовать Linq вместо регулярных выражений , например:

  string source = @"zf3kabxcde224lkzf3mabxc51+crsdtzf3nab=";

  int size = 3;

  var result = Enumerable
    .Range(0, source.Length - size + 1)
    .GroupBy(i => source.Substring(i, size))
    .Where(chunk => chunk.Count() > 1)
    .Select(chunk => $"'{chunk.Key}' appears {chunk.Count()} times");

 Console.Write(string.Join(Environment.NewLine, result));

Результат:

'zf3' appears 3 times
'abx' appears 2 times
'bxc' appears 2 times
[ 1112] Обратите внимание, что на самом деле у нас есть два разных фрагмента (abx и bxc), которые появляются дважды.

Linq очень гибок, поэтому вы можете легко сделать запрос другим способом, например

 var result = Enumerable
    .Range(0, source.Length - size + 1)
    .GroupBy(i => source.Substring(i, size))
    .Where(chunk => chunk.Count() > 1)
    .GroupBy(chunk => chunk.Count(), chunk => chunk.Key)
    .OrderBy(chunk => chunk.Key)
    .Select(chunk => $"Appears: {chunk.Key}; patterns: {string.Join(", ", chunk)}");

 Console.Write(string.Join(Environment.NewLine, result));

Результат:

 Appears: 2; patterns: abx, bxc
 Appears: 3; patterns: zf3
11
задан BCS 15 March 2009 в 20:50
поделиться

2 ответа

Не может D выполнять прямые вызовы в код C? Или Вы ищете библиотеку, записанную в D?

2
ответ дан 3 December 2019 в 11:21
поделиться

dsource.org/projects уже упоминался в этой ветке раньше, вот несколько деталей.

Вот привязки языка D для Научной библиотеки GNU (GSL) .

Вот ссылка на GSL .

Вот несколько ссылок на документацию по поддержке BLAS , декомпозиции ( 1 , 2 ), собственных систем , в GSL.

4
ответ дан 3 December 2019 в 11:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: