{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2026-04-16T00:12:35.000Z","description":"Problems submitted by members of the MATLAB Central community.","is_default":true,"created_by":161519,"badge_id":null,"featured":false,"trending":false,"solution_count_in_trending_period":0,"trending_last_calculated":"2026-04-16T00:00:00.000Z","image_id":null,"published":true,"community_created":false,"status_id":2,"is_default_group_for_player":false,"deleted_by":null,"deleted_at":null,"restored_by":null,"restored_at":null,"description_opc":null,"description_html":null,"published_at":null},"problems":[{"id":201,"title":"Mimic foldl in functional programming","description":"Mimic the higher-order function |foldl| ( \u003chttp://en.wikipedia.org/wiki/Fold_%28higher-order_function%29 Wikipedia:Fold (higher-order function)\u003e ).\r\n\r\nArguments are a function with two arguments, a start value, and a list. It takes the start value and the first item in the list and then applies the function to them, then feeds the function with this result and the second item in the list, and so on.\r\n\r\n    foldl(f, start, [x1, x2, ..., xn]) == f( (...f(f(f(s, x1), x2), x3), ...) , xn)\r\n\r\n    foldl(@plus, 0, 1:10) == ( ... (((0 + 1) + 2) + 3) + ... + 10) == 55\r\n\r\nIf the list is missing, it have to return the function handle which takes a list.\r\nIf both the start value and the list are missing, it have to return the function handle which takes two arguments, a start value and a list.\r\n  \r\n    sumplusfive = foldl(@plus, 5);\r\n    =\u003e sumplusfive(1:10) == 60\r\n\r\n    concat = foldl(@(x_, y_) [x_ y_]);\r\n    =\u003e concat([1 2 3], [4 5 6]) == [1 2 3 4 5 6]","description_html":"\u003cp\u003eMimic the higher-order function \u003ctt\u003efoldl\u003c/tt\u003e ( \u003ca href=\"http://en.wikipedia.org/wiki/Fold_%28higher-order_function%29\"\u003eWikipedia:Fold (higher-order function)\u003c/a\u003e ).\u003c/p\u003e\u003cp\u003eArguments are a function with two arguments, start value, and a list. It takes the start value and the first item in the list and then applies the function to them, then feeds the function with this result and the second item in the list, and so on.\u003c/p\u003e\u003cpre\u003e    foldl(f, start, [x1, x2, ..., xn]) == f( (...f(f(f(s, x1), x2), x3), ...) , xn)\u003c/pre\u003e\u003cpre\u003e    foldl(@plus, 0, 1:10) == ( ... (((0 + 1) + 2) + 3) + ... + 10) == 55\u003c/pre\u003e\u003cp\u003eIf the list is missing, it have to return the function handle which takes list.\r\nIf both the start value and the list are missing, it have to return the function handle which takes two arguments, start value and list.\u003c/p\u003e\u003cpre\u003e    sumplusfive = foldl(@plus, 5);\r\n    =\u003e sumplusfive(1:10) == 60\u003c/pre\u003e\u003cpre\u003e    concat = foldl(@(x_, y_) [x_ y_]);\r\n    =\u003e concat([1 2 3], [4 5 6]) == [1 2 3 4 5 6]\u003c/pre\u003e","function_template":"function y = foldl(f, start, list)\r\n  y = 0;\r\nend","test_suite":"%% summation\r\nassert(isequal(foldl(@plus, 0, 1:100), 5050));\r\n\r\n%% summation 2\r\nr = rand(1, 100);\r\ny = foldl(@plus, 0, r);\r\nyc = sum(r);\r\nassert(abs(y - yc)/abs(y) \u003c 1e-6);\r\n\r\n%% factorial\r\nassert(isequal(foldl(@times, 1, 1:15), factorial(15)));\r\n\r\n%% find maximum\r\nr = rand(1, 1000);\r\nassert(isequal(foldl(@max, -Inf, r), max(r)));\r\n\r\n%%\r\nassert(isequal(foldl(@(x_, y_) 2*x_ + y_, 4, 1:3), 43));\r\n\r\n%% handle 1\r\nsumplusfive = foldl(@plus, 5);\r\nassert(isequal(sumplusfive(1:100), 5055));\r\n\r\n%% handle 2\r\nconcat = foldl(@(x_, y_) [x_ y_]);\r\nr1 = rand(1, 10);\r\nr2 = rand(1, 10);\r\nassert(isequal(concat(r1, r2), [r1 r2]));\r\n","published":true,"deleted":false,"likes_count":4,"comments_count":0,"created_by":64,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":33,"test_suite_updated_at":"2012-01-31T19:39:00.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2012-01-31T19:39:00.000Z","updated_at":"2025-05-13T11:16:25.000Z","published_at":"2012-01-31T19:41:29.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eMimic the higher-order function\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003efoldl\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Fold_%28higher-order_function%29\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWikipedia:Fold (higher-order function)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e ).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eArguments are a function with two arguments, start value, and a list. It takes the start value and the first item in the list and then applies the function to them, then feeds the function with this result and the second item in the list, and so on.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[    foldl(f, start, [x1, x2, ..., xn]) == f( (...f(f(f(s, x1), x2), x3), ...) , xn)\\n\\n    foldl(@plus, 0, 1:10) == ( ... (((0 + 1) + 2) + 3) + ... + 10) == 55]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf the list is missing, it have to return the function handle which takes list. If both the start value and the list are missing, it have to return the function handle which takes two arguments, start value and list.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[    sumplusfive = foldl(@plus, 5);\\n    =\u003e sumplusfive(1:10) == 60\\n\\n    concat = foldl(@(x_, y_) [x_ y_]);\\n    =\u003e concat([1 2 3], [4 5 6]) == [1 2 3 4 5 6]]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"}],"problem_search":{"errors":[],"problems":[{"id":201,"title":"Mimic foldl in functional programming","description":"Mimic the higher-order function |foldl| ( \u003chttp://en.wikipedia.org/wiki/Fold_%28higher-order_function%29 Wikipedia:Fold (higher-order function)\u003e ).\r\n\r\nArguments are a function with two arguments, a start value, and a list. It takes the start value and the first item in the list and then applies the function to them, then feeds the function with this result and the second item in the list, and so on.\r\n\r\n    foldl(f, start, [x1, x2, ..., xn]) == f( (...f(f(f(s, x1), x2), x3), ...) , xn)\r\n\r\n    foldl(@plus, 0, 1:10) == ( ... (((0 + 1) + 2) + 3) + ... + 10) == 55\r\n\r\nIf the list is missing, it have to return the function handle which takes a list.\r\nIf both the start value and the list are missing, it have to return the function handle which takes two arguments, a start value and a list.\r\n  \r\n    sumplusfive = foldl(@plus, 5);\r\n    =\u003e sumplusfive(1:10) == 60\r\n\r\n    concat = foldl(@(x_, y_) [x_ y_]);\r\n    =\u003e concat([1 2 3], [4 5 6]) == [1 2 3 4 5 6]","description_html":"\u003cp\u003eMimic the higher-order function \u003ctt\u003efoldl\u003c/tt\u003e ( \u003ca href=\"http://en.wikipedia.org/wiki/Fold_%28higher-order_function%29\"\u003eWikipedia:Fold (higher-order function)\u003c/a\u003e ).\u003c/p\u003e\u003cp\u003eArguments are a function with two arguments, start value, and a list. It takes the start value and the first item in the list and then applies the function to them, then feeds the function with this result and the second item in the list, and so on.\u003c/p\u003e\u003cpre\u003e    foldl(f, start, [x1, x2, ..., xn]) == f( (...f(f(f(s, x1), x2), x3), ...) , xn)\u003c/pre\u003e\u003cpre\u003e    foldl(@plus, 0, 1:10) == ( ... (((0 + 1) + 2) + 3) + ... + 10) == 55\u003c/pre\u003e\u003cp\u003eIf the list is missing, it have to return the function handle which takes list.\r\nIf both the start value and the list are missing, it have to return the function handle which takes two arguments, start value and list.\u003c/p\u003e\u003cpre\u003e    sumplusfive = foldl(@plus, 5);\r\n    =\u003e sumplusfive(1:10) == 60\u003c/pre\u003e\u003cpre\u003e    concat = foldl(@(x_, y_) [x_ y_]);\r\n    =\u003e concat([1 2 3], [4 5 6]) == [1 2 3 4 5 6]\u003c/pre\u003e","function_template":"function y = foldl(f, start, list)\r\n  y = 0;\r\nend","test_suite":"%% summation\r\nassert(isequal(foldl(@plus, 0, 1:100), 5050));\r\n\r\n%% summation 2\r\nr = rand(1, 100);\r\ny = foldl(@plus, 0, r);\r\nyc = sum(r);\r\nassert(abs(y - yc)/abs(y) \u003c 1e-6);\r\n\r\n%% factorial\r\nassert(isequal(foldl(@times, 1, 1:15), factorial(15)));\r\n\r\n%% find maximum\r\nr = rand(1, 1000);\r\nassert(isequal(foldl(@max, -Inf, r), max(r)));\r\n\r\n%%\r\nassert(isequal(foldl(@(x_, y_) 2*x_ + y_, 4, 1:3), 43));\r\n\r\n%% handle 1\r\nsumplusfive = foldl(@plus, 5);\r\nassert(isequal(sumplusfive(1:100), 5055));\r\n\r\n%% handle 2\r\nconcat = foldl(@(x_, y_) [x_ y_]);\r\nr1 = rand(1, 10);\r\nr2 = rand(1, 10);\r\nassert(isequal(concat(r1, r2), [r1 r2]));\r\n","published":true,"deleted":false,"likes_count":4,"comments_count":0,"created_by":64,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":33,"test_suite_updated_at":"2012-01-31T19:39:00.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2012-01-31T19:39:00.000Z","updated_at":"2025-05-13T11:16:25.000Z","published_at":"2012-01-31T19:41:29.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eMimic the higher-order function\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003efoldl\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Fold_%28higher-order_function%29\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWikipedia:Fold (higher-order function)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e ).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eArguments are a function with two arguments, start value, and a list. It takes the start value and the first item in the list and then applies the function to them, then feeds the function with this result and the second item in the list, and so on.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[    foldl(f, start, [x1, x2, ..., xn]) == f( (...f(f(f(s, x1), x2), x3), ...) , xn)\\n\\n    foldl(@plus, 0, 1:10) == ( ... (((0 + 1) + 2) + 3) + ... + 10) == 55]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf the list is missing, it have to return the function handle which takes list. If both the start value and the list are missing, it have to return the function handle which takes two arguments, start value and list.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[    sumplusfive = foldl(@plus, 5);\\n    =\u003e sumplusfive(1:10) == 60\\n\\n    concat = foldl(@(x_, y_) [x_ y_]);\\n    =\u003e concat([1 2 3], [4 5 6]) == [1 2 3 4 5 6]]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"}],"term":"tag:\"functional\"","current_player_id":null,"fields":[{"name":"page","type":"integer","callback":null,"default":1,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"per_page","type":"integer","callback":null,"default":50,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"sort","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"body","type":"text","callback":null,"default":"*:*","directive":null,"facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":false},{"name":"group","type":"string","callback":null,"default":null,"directive":"group","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"difficulty_rating_bin","type":"string","callback":null,"default":null,"directive":"difficulty_rating_bin","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"id","type":"integer","callback":null,"default":null,"directive":"id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"tag","type":"string","callback":null,"default":null,"directive":"tag","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"product","type":"string","callback":null,"default":null,"directive":"product","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_at","type":"timeframe","callback":{},"default":null,"directive":"created_at","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"profile_id","type":"integer","callback":null,"default":null,"directive":"author_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_by","type":"string","callback":null,"default":null,"directive":"author","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player_id","type":"integer","callback":null,"default":null,"directive":"solver_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player","type":"string","callback":null,"default":null,"directive":"solver","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"solvers_count","type":"integer","callback":null,"default":null,"directive":"solvers_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"comments_count","type":"integer","callback":null,"default":null,"directive":"comments_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"likes_count","type":"integer","callback":null,"default":null,"directive":"likes_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leader_id","type":"integer","callback":null,"default":null,"directive":"leader_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leading_solution","type":"integer","callback":null,"default":null,"directive":"leading_solution","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true}],"filters":[{"name":"asset_type","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":"\"cody:problem\"","prepend":true},{"name":"profile_id","type":"integer","callback":{},"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":"author_id","static":null,"prepend":true}],"query":{"params":{"per_page":50,"term":"tag:\"functional\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"functional\"","","\"","functional","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f17a34371c0\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f17a3437120\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f17a3436860\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f17a3437440\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f17a34373a0\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f17a3437300\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f17a3437260\u003e":"tag:\"functional\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f17a3437260\u003e":"tag:\"functional\""},"queried_facets":{}},"query_backend":{"connection":{"configuration":{"index_url":"http://index-op-v2/solr/","query_url":"http://search-op-v2/solr/","direct_access_index_urls":["http://index-op-v2/solr/"],"direct_access_query_urls":["http://search-op-v2/solr/"],"timeout":10,"vhost":"search","exchange":"search.topic","heartbeat":30,"pre_index_mode":false,"host":"rabbitmq-eks","port":5672,"username":"cody-search","password":"78X075ddcV44","virtual_host":"search","indexer":"amqp","http_logging":"true","core":"cody"},"query_connection":{"uri":"http://search-op-v2/solr/cody/","proxy":null,"connection":{"parallel_manager":null,"headers":{"User-Agent":"Faraday v1.0.1"},"params":{},"options":{"params_encoder":"Faraday::FlatParamsEncoder","proxy":null,"bind":null,"timeout":null,"open_timeout":null,"read_timeout":null,"write_timeout":null,"boundary":null,"oauth":null,"context":null,"on_data":null},"ssl":{"verify":true,"ca_file":null,"ca_path":null,"verify_mode":null,"cert_store":null,"client_cert":null,"client_key":null,"certificate":null,"private_key":null,"verify_depth":null,"version":null,"min_version":null,"max_version":null},"default_parallel_manager":null,"builder":{"adapter":{"name":"Faraday::Adapter::NetHttp","args":[],"block":null},"handlers":[{"name":"Faraday::Response::RaiseError","args":[],"block":null}],"app":{"app":{"ssl_cert_store":{"verify_callback":null,"error":null,"error_string":null,"chain":null,"time":null},"app":{},"connection_options":{},"config_block":null}}},"url_prefix":"http://search-op-v2/solr/cody/","manual_proxy":false,"proxy":null},"update_format":"RSolr::JSON::Generator","update_path":"update","options":{"url":"http://search-op-v2/solr/cody"}}},"query":{"params":{"per_page":50,"term":"tag:\"functional\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"functional\"","","\"","functional","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f17a34371c0\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f17a3437120\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f17a3436860\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f17a3437440\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f17a34373a0\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f17a3437300\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f17a3437260\u003e":"tag:\"functional\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f17a3437260\u003e":"tag:\"functional\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":201,"difficulty_rating":"easy-medium"}]}}