?????????? ????????? - ??????????????? - /home/agenciai/public_html/cd38d8/applicative.hpp.tar
???????
usr/include/boost/hana/concept/applicative.hpp 0000644 00000001641 15126377006 0015513 0 ustar 00 /*! @file Defines `boost::hana::Applicative`. @copyright Louis Dionne 2013-2017 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) */ #ifndef BOOST_HANA_CONCEPT_APPLICATIVE_HPP #define BOOST_HANA_CONCEPT_APPLICATIVE_HPP #include <boost/hana/fwd/concept/applicative.hpp> #include <boost/hana/ap.hpp> #include <boost/hana/config.hpp> #include <boost/hana/core/default.hpp> #include <boost/hana/core/tag_of.hpp> #include <boost/hana/detail/integral_constant.hpp> #include <boost/hana/lift.hpp> BOOST_HANA_NAMESPACE_BEGIN template <typename A> struct Applicative : hana::integral_constant<bool, !is_default<ap_impl<typename tag_of<A>::type>>::value && !is_default<lift_impl<typename tag_of<A>::type>>::value > { }; BOOST_HANA_NAMESPACE_END #endif // !BOOST_HANA_CONCEPT_APPLICATIVE_HPP usr/include/boost/hana/fwd/concept/applicative.hpp 0000644 00000010161 15132171662 0016265 0 ustar 00 /*! @file Forward declares `boost::hana::Applicative`. @copyright Louis Dionne 2013-2017 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) */ #ifndef BOOST_HANA_FWD_CONCEPT_APPLICATIVE_HPP #define BOOST_HANA_FWD_CONCEPT_APPLICATIVE_HPP #include <boost/hana/config.hpp> BOOST_HANA_NAMESPACE_BEGIN //! @ingroup group-concepts //! @defgroup group-Applicative Applicative //! The `Applicative` concept represents `Functor`s with the ability //! to lift values and combine computations. //! //! A `Functor` can only take a normal function and map it over a //! structure containing values to obtain a new structure containing //! values. Intuitively, an `Applicative` can also take a value and //! lift it into the structure. In addition, an `Applicative` can take //! a structure containing functions and apply it to a structure //! containing values to obtain a new structure containing values. //! By currying the function(s) inside the structure, it is then //! also possible to apply n-ary functions to n structures containing //! values. //! //! @note //! This documentation does not go into much details about the nature //! of applicatives. However, the [Typeclassopedia][1] is a nice //! Haskell-oriented resource where such information can be found. //! //! //! Minimal complete definition //! --------------------------- //! `lift` and `ap` satisfying the laws below. An `Applicative` must //! also be a `Functor`. //! //! //! Laws //! ---- //! Given an `Applicative` `F`, the following laws must be satisfied: //! 1. Identity\n //! For all objects `xs` of tag `F(A)`, //! @code //! ap(lift<F>(id), xs) == xs //! @endcode //! //! 2. Composition\n //! For all objects `xs` of tag `F(A)` and functions-in-an-applicative //! @f$ fs : F(B \to C) @f$, //! @f$ gs : F(A \to B) @f$, //!
| ver. 1.6 |
Github
|
.
| PHP 8.2.30 | ??????????? ?????????: 0 |
proxy
|
phpinfo
|
???????????