Я использую следующее для достижения этой цели,
<?php
function EncodePhoneNumber($Number='', $first=0, $last=0, $rep='*'){
$begin = substr($Number,0,$first);
$middle = str_repeat($rep,strlen(substr($Number,$first,$last)));
$end = substr($Number, $last);
$stars = $begin.$middle.$end;
return $stars;
}
$string = '12345678910';
echo EncodePhoneNumber($string,0,-3);
?>
Функциональное программирование подходит лучше всего для большинства видов проблем, включая что-либо, что Вы обычно использовали бы объектно-ориентированное программирование для, за исключением, возможно, проблем, которые требуют хранения большого количества состояния или других побочных эффектов. Кроме этого, FP решает сложные проблемы намного более корректно, чем ООП, поскольку многое из него происходит из математической среды (запускающийся с лямбда-исчисления). У Вас есть намного больше гибкости насколько абстракция и состав идут. Объектно-ориентированная программа с большим количеством шаблонов разработки могла быть пересмотрена с помощью более функциональных конструкций, которые позволят Вам делать то же самое без шаблонных структур, которые шаблоны разработки заставляют Вас записать. В дополнение к математике и парсингу, FP также экстенсивно использовался в искусственном интеллекте (особенно Lisp).
Функциональное программирование является большим для создания программ, которые могут подвергнуться параллельному выполнению, так как они препятствуют использованию глобальных состояний.
Функциональные языки используются много в математике и статистике.
К далее на параллельной точке выполнения, функциональные языки имеют тенденцию быть хорошими для графического моделирования, такими как трассировка лучей.
В значительной степени что-либо, что имеет много математики.
Я соглашаюсь с Galwegian -
"Функциональные языки используются много в математике и статистике".
Однако это не единственное использование. Поскольку языки функционального программирования становятся более основными, Вы будете, вероятно, запуская нахождение бизнес-классов/библиотек/программного обеспечения, записанных записанный на этих языках.
Например, функциональный язык ML хорош для реализации компиляторов и других приложений, управляющих деревьями.
Если Вы пишете шаблоны C++, Вы работаете на чистом функциональном языке.
XSLT является примером языка функционального программирования для того, чтобы сделать преобразования данных или документов, представленных как XML - по общему признанию очень подробный и очень ограниченный. Если я помню правильно, что XQuery также чисто функционален. Приемы то, что без любого понятия глобального состояния они arely на хост-программе, чтобы снабдить данными и использовать их результаты. Это помогает сохранить программы XSLT (таблицы стилей) чистый и допускающий повторное использование, но необходимо добавить своего рода (обязательную) платформу для использования их в качестве части системы обработки общего назначения.
Основные электронные таблицы могут рассматриваться как функциональные программы... :)
Структуры данных. Пример: Сравните обязательную реализацию "кучи" Fibonacci (часто используемый в качестве приоритетной очереди) с функциональной реализацией. Часто функциональный код будет меньше чем 100 строками кода, тогда как обязательная реализация может быть значительно большим количеством строк кода.