/**
 * This function takes a list of subjects and conditions as arguments. It captures photos of the subjects
 * based on the specified conditions.
 *
 * @param subjects a list of subjects to capture photos of
 * @param conditions a list of boolean expressions representing the conditions to satisfy for capturing a photo
 * @return a list of captured photos meeting the given conditions
 */
fun capturePhotos(subjects: List<String>, conditions: List<(String) -> Boolean>): List<String> {

    val capturedPhotos = mutableListOf<String>()

    for (subject in subjects) {
        for (condition in conditions) {
            if (condition(subject)) {
                capturedPhotos.add("Photo of $subject under ${condition::class.simpleName}")
            }
        }
    }

    return capturedPhotos
}
/**
 * This function takes a list of subjects and conditions as arguments. It captures photos of the subjects
 * based on the specified conditions.
 *
 * @param subjects a list of subjects to capture photos of
 * @param conditions a list of boolean expressions representing the conditions to satisfy for capturing a photo
 * @return a list of captured photos meeting the given conditions
 */
fun capturePhotos(subjects: List<String>, conditions: List<(String) -> Boolean>): List<String> {
/**
 * This function takes a list of subjects and conditions as arguments. It captures photos of the subjects
 * based on the specified conditions.
 *
 * @param subjects a list of subjects to capture photos of
 * @param conditions a list of boolean expressions representing the conditions to satisfy for capturing a photo
 * @return a list of captured photos meeting the given conditions
 */
fun capturePhotos(subjects: List<String>, conditions: List<(String) -> Boolean>): List<String> {

    val capturedPhotos = mutableListOf<String>()

    for (subject in subjects) {
        for (condition in conditions) {
            if (condition(subject)) {
                capturedPhotos.add("Photo of $subject under ${condition::class.simpleName}")
            }
        }
    }

    return capturedPhotos
}