В обычном кодировании перечислителя по существу StepT[E, F, ?] ~> F[StepT[E, F, ?]]
. При попытке записать общий метод, преобразовывающий этот тип в Step[E, G, ?] ~> G[Step[E, G, ?]]
, учитывая F ~> G
, то Вы быстро столкнетесь с проблемой: необходимо "понизиться" Step[E, G, A]
к Step[E, F, A]
, чтобы быть в состоянии применить исходный перечислитель.
Scalaz также обеспечивает альтернативный перечислитель, кодирующий , который похож на это:
trait EnumeratorP[E, F[_]] {
def apply[G[_]: Monad](f: F ~> G): EnumeratorT[E, G]
}
Этот подход позволяет нам определять перечислитель, это конкретно относительно эффектов, в которых он нуждается, но это может быть "снято" для работы с потребителями, которые требуют более богатых контекстов. Мы можем изменить Ваш пример для использования EnumeratorP
(и более новый естественный подход преобразования, а не старый частичный порядок монады):
import scalaz._, Scalaz._, iteratee._, concurrent.Task
def enum: EnumeratorP[String, Id] = ???
def iter: IterateeT[String, Task, Int] = ???
val toTask = new (Id ~> Task) { def apply[A](a: A): Task[A] = Task(a) }
Мы можем теперь составить два как это:
scala> def result = (iter &= enum(toTask)).run
result: scalaz.concurrent.Task[Int]
EnumeratorP
одноместно (если эти F
применимо), и EnumeratorP
, сопутствующий объект обеспечивает некоторые функции для помощи с определением перечислителей, которые много походят на тех на [1 112] — существует empty
, perform
, enumPStream
, и т.д. Я предполагаю, что должно быть EnumeratorT
экземпляры, которые не могли быть реализованы с помощью EnumeratorP
кодирование, но первое, что пришло на ум я не уверен, на что они были бы похожи.
Мне интересно узнать, будет ли быть в состоянии отправить текстовые сообщения через PHP
Конечно, это возможно ;-)
Все можно сделать на PHP; -)
Для получения дополнительной информации вы можете взглянуть на эти вопросы / ответы, которые содержат некоторую полезную информацию:
Есть несколько провайдеров, которые можно использовать в качестве шлюза для отправки SMS; все-таки, наверное, не бесплатно (SMS все-таки не бесплатные) - но затраты не такие большие ...
Я сделал это с помощью PHP, и он работает очень хорошо. Текстовые сообщения - это не что иное, как электронное письмо, обычно с 10-значным номером получателя @ address.com. Если вы хотите отправлять текстовые сообщения кому-то с PHP, вам необходимо получить правильный адрес:
. Вы должны быть осторожны с тем, как долго доставляются ваши сообщения, поскольку примерно 55 символов (я считаю) ваше сообщение может быть либо разбито на несколько текстов, либо потеряно.
Отправка текстов по электронной почте бесплатна.
Если это, например, приложение для внутренней отчетности, обычно самый простой способ доставить SMS-сообщения людям - использовать шлюзы электронной почты в SMS их поставщиков телекоммуникационных услуг . Для этого необходимо, чтобы они были у указанных поставщиков услуг, но у всех крупных компаний они есть. Все, что вам нужно сделать, это узнать адрес электронной почты, на который нужно отправить SMS каждому человеку, и использовать mail ()
или что-то подобное, чтобы отправить туда электронное письмо.
Чтобы иметь возможность отправлять текстовые сообщения, как в смс, вам понадобится шлюз для смс, его очень легко настроить. В прошлом я создал приложение, которое преобразует электронное письмо в sms через php с помощью библиотеки pear mail, и вы также можете сделать это наоборот, когда sms конвертируется в электронное письмо ... единственная сложная часть будет получить sms-шлюз с очень удобным интерфейсом